See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 18171|Vastuse: 0

[Kommunikatsioon] Puhas C# konksu rakendus

[Kopeeri link]
Postitatud 07.02.2019 21:10:23 | | |
Puhas C# Hooki rakendus

Süsteemikonksude rakendamiseks on see tegelikult väga lihtne, lihtsalt kutsu kolm Win32 API-d.
SetWindowsHookEx-i kasutatakse konksude seadistamiseks. (Seadista kaart, et kontrollida vajalikku infot)

CallNextHookEx-i kasutatakse konksude edastamiseks (sõnumid on olulised, seega peaksid need sealt tagasi minema, kust sa tahad neid blokeerida)




UnhookWindowsHookEx Desinstalli konksud (desinstallimine on väga oluline, liiga palju kinni jäänud seadeid põhjustab ummistust)


Artikkel "KUIDAS TEHA: Aknakonksude seadistamine visuaalses C# .NET-is" kirjeldab seda järgmiselt:
Globaalsed konksud ei ole .NET raamistikus toetatud
Microsoft .NET raamistikus ei saa globaalseid konksusid rakendada. Globaalse konksu paigaldamiseks peab konksul olema natiivse dünaamilise lingikogu (DLL) eksport, et see saaks sisestada teise protsessi, mis tuleb kutsuda kehtivasse ja järjepidevasse funktsiooni. Selleks on vaja DLL-eksporti, mida .NET raamistik ei toeta. Hallatud koodil puudub kontseptsioon, et funktsiooniosutite väärtus oleks ühtlane, sest need funktsioonid on dünaamiliselt konstrueeritud proksid.
Leidsin internetist palju koodi ja enamik neist sisaldab C++ DLL-i, mis tuvastab DLL-i, mis sisaldab lpfn-i viidatud alamrutiini, mis näib seda väidet kinnitavat.

Kuid tegelikkuses see nii ei ole ning globaalset konksu saab rakendada järgmise koodiga:
IntPtr pInstance = Marshal.GetHINSTANCE( Assembly.GetExecutingAssembly(). ManifestModule );
Win32API.SetWindowsHookEx( WH_MOUSE_LL,m_MouseHookProcedure, pInstance, 0);
Märkus: ManifestModule omadus on uus lisand .Net Framework 2.0-s, nii et kui sa veel kasutad . Net Framework 1.x-s saad kasutada GetModules meetodit, et saada kõik praeguse assamblee moodulid ja seejärel kasutada üht neist GetHINSTAN meetodi parameetrina, et saada sobiv käepideme osut.





Eelmine:Delegaat C# keeles
Järgmine:Konksufunktsioonide kasutamine C# programmeerimisoskustes - SetWindowsHookEx
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com