ATARI PortFolio ála Miroslav Tomeš:
Ahoj Igor,
vidim, ze jsi velmi slusne vybaven. K hw a atarkum se snad jeste dostanu, dnes mam jen malickost. Ne kazdy den napisu kousek kodu, ktery si myslim, ze fakt stoji za to. Tyden prseni a tudiz malo prace mi dalo prostor doladit malickost, kterou studuju uz delsi dobu.
Dlouho jsem premyslel jak je udelana tato vec v total commanderu. Rozbalis napr textovy soubor z archivu do temp adresare a F4 ho editujes v notepadu. Po zavreni notepadu total commander docasny soubor zase smaze. Jedine co me napadlo je vyuziti windows hook.
V tu chvili jsem zjistil, ze win api je peklo na zemi, nicmene po procteni hromady nesmyslnych tlachu na ruznych forech (dokonce tam nejaky trouba radil udelat thread ktery po milisekunde kontroluje aktivni okno, pak proc ty wokna nefunguji, kdyz nektery sw pisou pitomci) a zjisteni ze dokumentace obcas rekne a, ale malokdy doda b, se mi nakonec podarilo rozchodit maly example, ktery hookuje stisk klavesy. No nic moc.
Nakonec po tezkem boji jsem vsak zvitezil.
-vzniklo dll, ktere implementuje globalni CBT hook, odchytava akce create window a destroy window
-podarilo se svazat handle aplikace - shellexecute vraci hinstance zatimco vsechny akce s okny odkazuji na hwnd
-v malem prikladu je listbox do ktereho po spusteni notepadu pribude polozka ve tvaru hinstance+hwnd, a po zavreni prislusneho okna ji program opet najde a smaze
-tato technologie by mela byt pouzita v APM pro editaci a prohlizeni souboru na PF. APM pak smaze docasny soubor, po editaci updatuje soubor na PF
Jestli chces mrkni do kodu, je to fakt dabluv nastroj.
Hezky den,
Mira
cbthook.zip (90,26 kb)
____________________________________________________
Vaše hodnotenie, Rate post:
8af913b8-d219-431e-b5ed-f861473191ab|5|5.0
Tags: