Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem WH_GETMESSAGE

Pokracovanie z: Programovanie Delphi Windows Messages
So spravamy typu WH_GETMESSAGE nemam ziadne skusenosti. Ako to mam teda urobyt, aby mi to odchytavalo vsetko, aj ked je aplikacia neaktyvna? Otazka hlavne pre "mm". Dakujem za odpovede.

[mod]Proč nepokračujete v původním vlákně? thread.php (anarchist)[/mod]

Předmět Autor Datum
To by bolo na dlhsie vysvetlovanie. Princip je taky ze si zaregistrujes vo Win funkciu svojho progra…
MM.. 23.02.2006 19:43
MM..
Potrebujem to na bakalarsku pracu. Na studentskych pocitacoch ma byt spusteny klient, ktory bude sle…
tragula 28.02.2006 11:44
tragula
Zachytavani zprav bude brknacka ve srovnani s tim ziskat z toho pak nejaky rozumny vystup. Dale si u…
Jan Fiala 28.02.2006 18:47
Jan Fiala
To znie dosť kruto. Napadá ma teda otázka: Keď sa zachytí správa, čo nebude patriť tomu programu, t…
msx. 28.02.2006 20:24
msx.
Musis ji poslat dal, jinak by ten program, kteremu patrila nefungoval - nereagoval by na klavesy, na…
Jan Fiala 28.02.2006 21:37
Jan Fiala
Citaj v MSDN. The system maintains a separate hook chain for each type of hook. A hook chain is a l… poslední
MM.. 28.02.2006 21:42
MM..

To by bolo na dlhsie vysvetlovanie. Princip je taky ze si zaregistrujes vo Win funkciu svojho programu (tzv. "Callback") ktoru ti Win budu volat pre urcite spravy (podla toho aky "hook" (hák) si tvoja aplikacia vo Win zaregistruje, da sa napr. na klavesnicu/mys alebo na vsetky spravy ktore si aplikacie vyberaju z fronty apod.).

Pozri si o tom v MSDN, ak nemas tak msdn.microsoft.com, napr. zacni http://msdn.microsoft.com/library/en-us/winui/winu i/windowsuserinterface/windowing/hooks/abouthooks. asp

S delphi to sice nema nic, ale aj v delphi sa da pouzivat priamo WinAPI.
Ak chces priamo nejaku komponentu pre delphi tak neviem (nie som delphista), skus hladat googlom:
delphi "system hook"

Ako si to robil doteraz? Co presne potrebujes?
BTW. Ak to ma byt nejaky keylogger, tak je samozrejme ze normalne klavesnicove WM_ spravy oknu neprichadzaju ak je neaktivne, klavesnicovy focus ma vzdy len jedno (spravidla to aktivne) okno.

To znie dosť kruto. Napadá ma teda otázka:

Keď sa zachytí správa, čo nebude patriť tomu programu, tak tá správa stratí platnosť a treba ju odovzdať ďalej alebo správa má platnosť naďalej a spracuje si ju ten proces, čo ju potrebuje? Čiže, či je to ako v DOSe pri odchytávaní klávesov v rezidente alebo je to niečo na spôsob verejného zoznamu, z ktorého si každý zoberie, čo potrebuje?

Musis ji poslat dal, jinak by ten program, kteremu patrila nefungoval - nereagoval by na klavesy, na mys, ...
Ty jen provedes nejake zaevidovani.
Ted si predstav, ze mas spusteno nekolik programu a zacnes nad nimi krouzit mysi. To bude zprav - MouseEnter, MouseLeave a kdyz si predstavis, ze kazdy ovladaci prvek je vlastne okno s vlastnim handle...

Proto jsem mluvil o tom, ze bude mnohem vetsi problem ty zpravy zpracovat do neceho rozumneho...

Citaj v MSDN.

The system maintains a separate hook chain for each type of hook. A hook chain is a list of pointers to special, application-defined callback functions called hook procedures. When a message occurs that is associated with a particular type of hook, the system passes the message to each hook procedure referenced in the hook chain, one after the other. The action a hook procedure can take depends on the type of hook involved. The hook procedures for some types of hooks can only monitor messages; others can modify messages or stop their progress though the chain, preventing them from reaching the next hook procedure or the destination window.

Zpět do poradny Odpovědět na původní otázku Nahoru