Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Prozesshandle verfolgen (https://www.delphipraxis.net/104269-prozesshandle-verfolgen.html)

Alien426 30. Nov 2007 13:52


Prozesshandle verfolgen
 
Hallo.

Ich starte ein Programm (mit CreateProcess() oder ShellExecuteEx()) und nutze WaitForSingleObject(), um festzustellen, wann der Prozess endet. Manche Programme (z.B. das Spiel BioShock) beenden den erzeugten Prozess aber sofort wieder und laufen in einem anderen weiter. Liegt wahrscheinlich am SecuROM-Kopierschutz.

Wenn ich den Prozess mittels Process Monitor von Sysinternals verfolge, erkennt SecuROM das und verhindert den Start.

Kann ich den Prozess trotzdem irgendwie verfolgen und feststellen wann er beendet wird?

Code:
PID    Operation      Path                                           Result  Detail
3532    Load Image     C:\WINDOWS\system32\secur32.dll                SUCCESS Image Base: 0x1660000, Image Size: 0x11000
3532    Process Create D:\Win\BioShock\Builds\Release\Bioshock.exe    SUCCESS PID: 3256
3256    Thread Create                                                  SUCCESS Thread ID: 2792
3256    Load Image     D:\Win\BioShock\Builds\Release\Bioshock.exe    SUCCESS Image Base: 0x10900000, Image Size: 0x15fc000
3256    Load Image     C:\WINDOWS\system32\ntdll.dll                  SUCCESS Image Base: 0x7c910000, Image Size: 0xb7000
3532    Thread Exit                                                    SUCCESS User Time: 0.4531250, Kernel Time: 0.1093750
3532    Process Exit                                                   SUCCESS Exit Status: 5664, User Time: 0.4687500, Kernel Time: 0.0937500
3256    Load Image     C:\WINDOWS\system32\kernel32.dll               SUCCESS Image Base: 0x7c800000, Image Size: 0x107000

geofranz01 30. Nov 2007 14:02

Re: Prozesshandle verfolgen
 
Hi,
laut Wiki sollte es aber funktionieren:
Zitat:

Zitat von Wikipedia
...Bioshock (Demo und Spiel) sowie World in Conflict (Demo und Retail) verhindert einen Start des Spiels, wenn der Process Explorer, ein freies Taskmanager-Tool von Microsoft, seit dem letzten Reboot gestartet wurde. Mit der Version 11.0 des Process Explorer hat Microsoft dieses Problem behoben.

mfg,
geofranz

P.S. Falls du Vista benutzt und Bioshock keine Adminrechte benötigt, könntest du den Process-Explorer evt. mit Admin-Rechten starten. Das sollte SecuRom dann ja nicht erkennen, oder??

Alien426 30. Nov 2007 14:40

Re: Prozesshandle verfolgen
 
Ah, okay, ich hatte wirklich eine ältere Version.

Aber mein Hauptproblem ist ja, dass ich in meinem Programm den neuen Prozess weiter verfolgen will. Hast du dafür eine Lösung?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz