Archiv verlassen und diese Seite im Standarddesign anzeigen : [C#] Main Thread anderer Programme anhalten
cocacola
01.09.2009, 22:30
Hi!
ich hab ne frage:
indem man mit der maus das fenster eines programmes festhält kann man den hauptthread dieses programms anhalten (so weit ich weiss geht das zum beispiel bei winrar)
wie kann ich das mit C# realisieren ohne den mouse cursor bewegen zu müssen?
mfg cocacola
bitte was? okay bein winrar scheints zu funktionieren aber schonmal bei firefox probiert? einfach ne seite laden lassen und dann mal probieren...
Geht nicht!!
und man kann den "Hauptthread" auch nicht anders anhalten. außer du setzt einen breakpoint. aber das geht in c# auf keinen fall und selbst in C oder ASM wird es da probleme geben. wenn du sowas machen willst=OllyDBG oder SoftICE oder sonst irgentein Debugger
Naja, Processe selbst kannst du ja noch mit NET Mitteln suchen:
GetProcessByName
http://msdn.microsoft.com/en-us/library/aa326945(VS.71).aspx (http://msdn.microsoft.com/en-us/library/aa326945%28VS.71%29.aspx)
da findest du unter anderem die ThreadIDs
http://msdn.microsoft.com/en-us/library/system.diagnostics.process_members(VS.71).aspx (http://msdn.microsoft.com/en-us/library/system.diagnostics.process_members%28VS.71%29.aspx )
nun bleibt noch diese zu öffnen und zu suspenden - und da bleibt wahrschenilch nur die WinAPI übrig ;)
öffnen:
http://www.pinvoke.net/default.aspx/kernel32/OpenThread.html
suspenden:
http://msdn.microsoft.com/en-us/library/ms686345(VS.85).aspx (http://msdn.microsoft.com/en-us/library/ms686345%28VS.85%29.aspx)
(signatur für c#) http://www.webtropy.com/articles/art9-1.asp?f=SuspendThread
echt? der "normale" ablauf ist auch "nur" ein thread?
mhmm man lernt nie aus...
bei firefox kannst du auch mehrere seiten parralel aufmachen (also wird das gethreadet sein)
http://keksa.de/?q=proslo
ich glaube der code macht genau das was du willst nur mit sämtlichen threads des programm
edit sehe gerade ist für c++ na ja vll hilft das ja trotzdem
der "normale" ablauf ist auch "nur" ein thread?
die komische C# Funktion sollte ein Array mit allen ThreadIDs liefern ;). Ansonsten kann man auch das gute alte CreateToolhel32Snapshot(... TH32CS_SNAPTHREAD) bemühen und OwnerProcessID abfragen.
Powered by vBulletin® Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.