Hallo,
Ik ben bezig met een (test) applicatie welke extra informatie op een formulier moet zetten van een applicatie (niet door mij gemaakt). Het ophalen van de open windows en de daarbij behorende handles en het gdi object om op het panel te "tekenen" is inmiddels gelukt.
Wanneer het formulier opnieuw getekend wordt is de extra content verdwenen (logisch). Ik heb geprobeerd om een hook te zetten op de thread die eigenaar is van het Window om zo de WM_PAINT events op te vangen.
Dit lukt echter niet. Wat mij half duidelijk is geworden in artikelen op internet is dat het niet mogelijk is om vanuit C# te hooken in threads die niet van je eigen applicatie zijn.
De enige mogelijkheid die ik nu nog zie is door met een soort van timer te werken en zo elke X ms opnieuw te tekenen.
Dit lijkt mij niet de ideale oplossing. Mijn vraag is of het inderdaad klopt dat het niet mogelijk is om te hooken op een extern thread. Wanneer dit niet mogelijk is, wat is dan de beste oplossing om te bekijken wanneer ik opnieuw moet tekenen?
Wanneer ik op dit moment probeer te hooken (via de SetWindowsHookEx API) krijg ik de WIN32 fout code 1426 (Invalid hook procedure type. ERROR_INVALID_HOOK_FILTER).
Ik ben bezig met een (test) applicatie welke extra informatie op een formulier moet zetten van een applicatie (niet door mij gemaakt). Het ophalen van de open windows en de daarbij behorende handles en het gdi object om op het panel te "tekenen" is inmiddels gelukt.
Wanneer het formulier opnieuw getekend wordt is de extra content verdwenen (logisch). Ik heb geprobeerd om een hook te zetten op de thread die eigenaar is van het Window om zo de WM_PAINT events op te vangen.
Dit lukt echter niet. Wat mij half duidelijk is geworden in artikelen op internet is dat het niet mogelijk is om vanuit C# te hooken in threads die niet van je eigen applicatie zijn.
De enige mogelijkheid die ik nu nog zie is door met een soort van timer te werken en zo elke X ms opnieuw te tekenen.
Dit lijkt mij niet de ideale oplossing. Mijn vraag is of het inderdaad klopt dat het niet mogelijk is om te hooken op een extern thread. Wanneer dit niet mogelijk is, wat is dan de beste oplossing om te bekijken wanneer ik opnieuw moet tekenen?
Wanneer ik op dit moment probeer te hooken (via de SetWindowsHookEx API) krijg ik de WIN32 fout code 1426 (Invalid hook procedure type. ERROR_INVALID_HOOK_FILTER).
...