machZcela určitě to jde zapomocí hooku.
Prostuduj SetWindowsHookEx.
Možná že poprvé se může zdát, že je to k něčemu jinému. Ale hooky krásně poslouží k dopravení svého kódu do cizí aplikace. Stačí napsat DLL, a zaregistrovat ho na hook. Je vcelku jedno na jaký - mě napadá WH_CBT jako efektivní řešení. Jenom je potřeba zajistit spuštění na nějakou událost, třeba na otevření příslušného okna. Tam už není problém zaháknout se na WinProc toho ovládacího prvku (seznamu) a víš vše.
Hooky lze instalovat selektivně, stačí, když v DLLMain zkontroluješ podle GetModuleFileName kde jsi. Pokud se nejedná o aplikaci, která tě zajímá, tak vrátíš FALSE, a systém zase DLL z té aplikace odloaduje.
Dál už je na tobě, jak si zajistíš komunikaci mezi tvým DLL a tvou aplikací. Můžeš použí správy, roury, sdílenou paměť. Pokud bys tápal, tak jeden skvělý článek najdeš na mých stránkách:
http://bredy.jinak.cz/?Zaklady_komunikace_mezi_procesy_ve_Windows_/75 |