.net - C # Find klipbrætpasta med HOOK

Indlæg af Hanne Mølgaard Plasc

Problem



Er det muligt globalt at opfange indsætte begivenheder på Windows og blokere afhængigt af målprocessen, med en krok, der virker i C # WinForms Enhver CPU-build?


Jeg tænkte på at sætte en krog i GetClipboardData eller vente på WM\_PASTE meddelelser. [1]


Mit første forsøg var SetWindowsHookEx, men et andet blik modvirkede mig. [2]


MSDN siger: [3]



  Globale kroge understøttes ikke i .NET Framework
  Bortset fra WH\_KEYBOARD\_LL lavt niveau krog og WH\_MOUSE\_LL lavt niveau krog, kan du ikke implementere globale kroge i Microsoft .NET Framework. For at installere en global krog skal en krog have en indbygget DLL-eksport for at injicere sig selv i en anden proces, der kræver en gyldig, konsistent funktion at kalde ind. Denne adfærd kræver en DLL-eksport. .NET Framework understøtter ikke DLL-eksport. Administreret kode har intet koncept for en ensartet værdi for en funktionspeger, fordi disse funktionspegere er proxyer, som er bygget dynamisk.


Bedste reference