Jag använder följande program för att ta skärmdumpar av det aktiva fönstret Programarkivet:Skapa skärmdump av aktivt program C#. Det proffisga sättet är att ta tag i hwnd för fönstret som du vill övervaka och hooka up message pumpen där, eller läsa förändringar i fönster ytan via hwnd. Hej. det krävs nog lite mer än ett hantag till formuläret om det är en extern app. Ok men grejen är att det är en ext. app och det är inte knapptryckningar jag vill övervaka utan vad som sker som sker rent graphiskt. Typ en grön linje målas, ett vitt objekt flyttas 4 bildpunkter åt höger. det är inte bara knapptryckningar du kan ta reda på genom att hooka fönstret. Även i en extern applikation som jag inte styr över??? (styrs av en server via internet) Har grottat en del, Ok det vore skyst men är det någon som vet ett bättre sätt att ta screenshots på?? Det där flimret...Ett problem jag aaldrig verkar få svar på :-(
Det går ju att använda till att ta en och en skärmdump men i min applikation så ska jag ligga och övervaka en applikations fönster och avgöra vad som grafiskt ske i det och till detta funkar det programmet välldigt dåligt. Tar fruktansvärt mycket minne och det blir omöjligt att jobba på datorn när man kör den applikationen och när det kört klart är min TFT skärm helt knasig ett bra tag efter. Skärmen flimmrar mm. Vad jag har gjort är att jag i en loop kör skärmdumpskoden massor med gånger.
Hur ser det proffsiga sättet ut att övervaka vad som grafiskt sker i ett fönstrer???
Snälla hjälp mig. Har bara detta kvar i mitt program sedan är det KLART :-)
MVH Göran PSv: Ett problem jag aaldrig verkar få svar på :-(
Skärmdump är helt fel approach.
Har du kontroll på den andra applikationen? ISF kan du skicka WM_USERCOMMAND meddelanden när ngt händer och hooka dem.Sv: Ett problem jag aaldrig verkar få svar på :-(
Nä, det var väl inte riktigt tänk att användas så. Här är tråden jag skapade exemplet för: [Snälla HJÄLP]
Håller med Patrik, ett handtag till formuläret eller enbart den kontroll du vill övervaka och något smart api skulle säkert fungera.Sv: Ett problem jag aaldrig verkar få svar på :-(
eftersom det bara går att subclass saker i samma process.
så det får väll bli en process hook istället.
//RogerSv: Ett problem jag aaldrig verkar få svar på :-(
Någon som vet hur man kan ta skärmdump av det aktiva fönstret på ett snabbt och smidigt sätt?
Har bara sett exempel där man tar en skärmdump av hela fönstret.
MVH Göran PSv: Ett problem jag aaldrig verkar få svar på :-(
Du kan få tag på alla meddelanden, som WM_PAINT tex, plus att du kan få en direkt access till ytan som ritas på. Skärmdump är inte riktigt optimaltSv: Ett problem jag aaldrig verkar få svar på :-(
Det är ett spel där man ska försöka klicka med musen på de prickar som visas. Prickarna blir mindre och mindre. Tänkte göra ett program som hittar pricken och skickar ett musklick dit. Körs inte vi ie utan kör i ett egen window fönster. Kan jag lösa detta på något annat sätt än med skärmdumpar alltså?
MVH Göran PSv: Ett problem jag aaldrig verkar få svar på :-(
.NET tillåter inte global hooks, dvs att göra hooks på andra processer, så det kräver unmanaged code.
Det innebär att utan att skriva unmanaged code så är snapshots enda sättet att lösa det du försöker göra just nu.
Blev nyfiken så täntke försöka skriva en sådan hook i managed/unmanaged c++. Återkommer om jag lyckas
Sv: Ett problem jag aaldrig verkar få svar på :-(
Sv: Ett problem jag aaldrig verkar få svar på :-(
För varje gång loopen går ett varv så uppdateras (ritas om) skärmen.
Tror du inte att man kan skriva någon liten kod som får skärmen att vänta tills alla loopar har gjorts och därefter uppdateras allt???
Vet inte HUR man skriver detta - men kanske det kan vara en idé ?
I Java kan man skriva in sådant i koden tex - men nu har jag ju inte läst C-sharp.
Hoppas du löser problemet. Lycka till!