Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 18171|Atsakyti: 0

[Komunikatas] Grynas C# kabliuko įgyvendinimas

[Kopijuoti nuorodą]
Paskelbta 2019-02-07 21:10:23 | | |
Grynas C# kabliuko įgyvendinimas

Norėdami įdiegti sistemos kabliukus, tai iš tikrųjų labai paprasta, tiesiog paskambinkite trims Win32 API.
"SetWindowsHookEx" naudojamas kabliukams nustatyti. (Nustatykite kortelę, kad patikrintumėte reikiamą informaciją)

CallNextHookEx naudojamas kabliukams perduoti (pranešimai yra svarbūs, todėl ten, iš kur jie ateina, jie turėtų grįžti ten, kur norite juos užblokuoti)




AtkabinkiteWindowsHookEx Pašalinkite kabliukus (pašalinimas yra labai svarbus, per daug įstrigusių nustatymų sukels perkrovą)


Straipsnyje "KAIP: Langų kabliukų nustatymas Visual C# .NET" tai apibūdinama taip:
Visuotiniai kabliukai nepalaikomi .NET sistemoje
Negalite įdiegti visuotinių kabliukų Microsoft .NET sistemoje. Norint įdiegti visuotinį kabliuką, kabliukas turi turėti vietinę dinaminių nuorodų bibliotekos (DLL) eksportą, kad jį būtų galima įterpti į kitą procesą, kurį reikia iškviesti į galiojančią ir nuoseklią funkciją. Tam reikalingas DLL eksportavimas, kurio nepalaiko .NET sistema. Valdomas kodas neturi vienodos funkcijų rodyklių reikšmės koncepcijos, nes šios funkcijos yra dinamiškai sukonstruoti tarpiniai serveriai.
Internete radau daug kodo, ir daugumoje jų yra C++ DLL, skirtas identifikuoti DLL, kuriame yra lpfn nurodyta paprogramė, o tai, atrodo, patvirtina šį teiginį.

Tačiau iš tikrųjų taip nėra, o visuotinį kabliuką galima įgyvendinti naudojant šį kodą:
IntPtr pInstance = Marshal.GetHINSTANCE( Assembly.GetExecutingAssembly(). ManifestModule );
Win32API.SetWindowsHookEx( WH_MOUSE_LL,m_MouseHookProcedure, pInstance, 0 );
Pastaba: Ypatybė ManifestModule yra naujas ".Net Framework 2.0" papildymas, taigi, kai vis dar naudojate . Net Framework 1.x galite naudoti GetModules metodą, kad gautumėte visus dabartinio mazgo modulius, o tada vieną iš jų naudoti kaip GetHINSTAN metodo parametrą, kad gautumėte atitinkamą rankenėlės žymeklį.





Ankstesnis:Delegatas C#
Kitą:Kablio funkcijų naudojimas C# programavimo įgūdžiams - SetWindowsHookEx
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com