Avatar billede Lasse Novice
19. marts 2003 - 00:47 Der er 16 kommentarer og
1 løsning

Hookning af keyboard

Jeg er ved at rive haaret ud paa mig selv, eftersom jeg ikke kan finde ud af at foelge en simpel brugsanvisning:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwui/html/msdn_hooks32.asp

Jeg skal have lavet saaledes at CTRL+ALT+S saetter mit program i focus uanset i hvilket program jeg er i. Det vil sige at jeg skal have lavet et system hook. Af en eller anden maerkelig grund kan jeg ikke faa det til at virke. Nu saetter jeg 200p paa hoejkant hvis der er en der kan komme med et fungerende eksempel.
Avatar billede Lasse Novice
19. marts 2003 - 00:49 #1
Forresten, inden der kommer en masse svar, saa har jeg proevet 90% af de eksempler paa nettet, hvilket virker fint saa laenge det er et lokalt hook.

Jeg koerer forresten win XP, hvilket kan vaere aarsagen til at det ikke virker...
Avatar billede Lasse Novice
19. marts 2003 - 16:52 #2
er der virkelig ingen der har leget med dette?
Avatar billede burningice Nybegynder
19. marts 2003 - 18:52 #3
Avatar billede Lasse Novice
19. marts 2003 - 22:34 #4
Ja, det er ikke helt dette jeg er ude efter. Dette er paa applications basis - ikke paa system basis.
Avatar billede kichian Nybegynder
19. marts 2003 - 22:54 #5
Avatar billede Lasse Novice
20. marts 2003 - 16:26 #6
det er stadig et lokalt hook(GetCurrentThreadId()). Skal det blive globalt(et system hook), skal denne int saettes til 0. Selvom man goer det, saa virker det dog ikke...
Avatar billede Lasse Novice
20. marts 2003 - 16:32 #7
forresten har jeg kigget paa den artikkel mange gange.

nej, svaret ligger i at jeg skal ligge min kode i en native dll(hvad det saa end er, men det kan jeg nok lige faa bikset sammen).
http://www.experts-exchange.com/Programming/Programming_Languages/Dot_Net/Q_20478264.html
Avatar billede burningice Nybegynder
20. marts 2003 - 16:38 #8
hehe.. du skal vist træne dit engelsk.. der står at man skal implementere en native dll... det er det som sker her:

[DllImport("user32.dll")]
public static extern IntPtr SetWindowsHookEx(HookType code,
    CbtHook.CbtProc func,
    IntPtr hInstance,
    int threadID);
[DllImport("user32.dll")]
public static extern int UnhookWindowsHookEx(IntPtr hhook);

hvor du opretter forbindelse til to funktioner i user32.dll'filen som er en del af windows's "højere ledelse"...
Avatar billede Lasse Novice
20. marts 2003 - 17:14 #9
yes, det er nok rigtigt... lige faa styr paa alle termer og lidt engelsk, men nok om det.

Ikke desto mindre, skal man - hvis man vil have et system hook - have en seperat dll, hvori det kode der skal eksekveres ligger. Det kan ikke ligge i samme dll/exe som det kode der installerer hooket. Jeg har proevet, men har ikke haft nogen held.
Avatar billede burningice Nybegynder
20. marts 2003 - 17:21 #10
hm.. kay... det virker meget mærkeligt... så du har fået det til at virke på den anden måde så?
Avatar billede Lasse Novice
20. marts 2003 - 17:26 #11
ja, alt virker saa laenge det er et lokalt hook(hookning paa applikations traaden). Men idet jeg vil hooke alle traade(id=0), saa virker det ikke. I information paa nettet, staar der at koden skal ligges i seperat dll, pga... noget jeg ikke lige fatter. Har dog proevet det, men er som sagt ikke sikker paa at jeg goer det rigtige.
Avatar billede burningice Nybegynder
20. marts 2003 - 18:28 #12
nu er der jo ingen der forbyder dig i at læse MS's kode af, så kan du ikke bare hente filerne fra den artikkel på MSDN, og copy/paste?

http://download.microsoft.com/download/msdnmagazine/code/Oct02/WXP/EN-US/CuttingEdge0210.exe
Avatar billede sneaky Nybegynder
03. april 2003 - 09:06 #13
Du kan lave din dll om til native code ved at bruge ngen tool'et. Og voila så kan du hooke :)

"Native Image Generator (Ngen.exe) Lets you create a native image from a managed assembly and install the image in the native image cache on the local computer."
Avatar billede Lasse Novice
03. april 2003 - 16:51 #14
er det noget du har proevet(eftersom du skriver voila....) eller gaetter vi.
Avatar billede Lasse Novice
09. april 2003 - 00:26 #15
sneaky >> eller hvad?
Avatar billede burningice Nybegynder
09. april 2003 - 09:44 #16
sneaky>> hvorfor skulle det gøre nogen forskel ?! Ens assembly bliver jo alligevel compilet til native code første gang man køre det
Avatar billede Lasse Novice
24. maj 2003 - 00:46 #17
det er ikke kommet til at virke... lukker spg.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester