Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 18171|Отговор: 0

[Комуникация] Чиста C# имплементация на кука

[Копирай линк]
Публикувано в 7.02.2019 г. 21:10:23 ч. | | |
Чиста имплементация на C# Hook

За да реализирате системни хукове, всъщност е много просто – просто извикайте трите Win32 API-та.
SetWindowsHookEx се използва за настройване на куки. (Задайте си карта, за да проверите нужната информация)

CallNextHookEx се използва за предаване на куки (съобщенията са важни, така че откъдето идват, трябва да се връщат там, където искаш да ги блокираш)




UnhookWindowsHookEx Куки за деинсталиране (деинсталирането е много важно, твърде много заседнали настройки ще причинят задръстване)


Статията "КАК ДА: Настройване на прозоречни куки във Visual C# .NET" я описва по следния начин:
Глобалните куки не се поддържат в .NET фреймуърка
Не можете да реализирате глобални куки в Microsoft .NET фреймуърка. За да се инсталира глобален кука, куката трябва да има нативен експорт от динамична библиотека за връзки (DLL), за да може да бъде вмъкнат в друг процес, който трябва да бъде извикан в валидна и последователна функция. Това изисква експорт на DLL, който не се поддържа от .NET framework. Управляваният код няма концепцията за униформна стойност на указателите на функции, защото тези функции са динамично конструирани проксита.
Намерих много код в интернет, и повечето от тях съдържат C++ DLL, който идентифицира DLL, съдържащ подпрограмата, посочена от lpfn, което изглежда потвърждава това твърдение.

Но в действителност това не е така и глобалната кука може да бъде реализирана чрез следния код:
IntPtr pInstance = Marshal.GetHINSTANCE( Assembly.GetExecutingAssembly(). ManifestModule );
Win32API.SetWindowsHookEx( WH_MOUSE_LL,m_MouseHookProcedure, pInstance, 0 );
Забележка: Свойството ManifestModule е ново допълнение в .Net Framework 2.0, така че когато все още използвате . В Net Framework 1.x можеш да използваш метода GetModules, за да получиш всички модули от текущия асемблер, а след това да използваш един от тях като параметър към метода GetHINSTAN, за да получиш подходящия указател за дескрипци.





Предишен:Делегат на C#
Следващ:Използване на кука функции в умения за програмиране на C# - SetWindowsHookEx
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com