30.07.2018, 10:10
0
In solchen Fällen ist das Timing wahrscheinlich nicht ganz Sauber. Aber für den Normalfall, abgesehen vom testen, sollte es jetzt so funktionieren.
Habe gestern Abend auch noch mal ein bisschen über PCem gespielt, mit dem Prozesscheck im Hintergrund, ging ohne Probleme.
Was ich jedoch festgestellt habe ist, dass PCem geschlossen wird, sobald man im Fenstermodus Optionen über das Dropdown Menü einstellen will. Werde ich mir heute Abend noch einmal in ruhe angucken, das Verhalten bekommt man auch noch weg.
Edit:
Habe mir gerade mal ein Stündchen Zeit genommen und das ganze wesentlich verfeinert:
Konnte nun auf meinem System keine Probleme mehr feststellen, es wird nur nach den wirklichen "PcEM" Prozessen gesucht, nicht mehr über ein "-like *PcEM*"
Zusätzlich hab ich noch die Eigenschaft "mainwindowhandle" gefunden, bei geschlossener Anwendung wird die Handle ID auf 0 gesetzt. Dies wird nun überprüft, und scheint besser zu arbeiten als die Suche nach einem leeren "mainwindowtitle".
Hier noch die Batch mit der ich jetzt starte, Timeout wird benötigt um die Anwendung zu initialisieren, dauert bei mir circa 2 Sekunden, also von System zu System unterschiedlich.
Passe den Code jetzt auch in den anderen Beiträgen an, und entferne die alten EXE Dateien.
Habe gestern Abend auch noch mal ein bisschen über PCem gespielt, mit dem Prozesscheck im Hintergrund, ging ohne Probleme.
Was ich jedoch festgestellt habe ist, dass PCem geschlossen wird, sobald man im Fenstermodus Optionen über das Dropdown Menü einstellen will. Werde ich mir heute Abend noch einmal in ruhe angucken, das Verhalten bekommt man auch noch weg.
Edit:
Habe mir gerade mal ein Stündchen Zeit genommen und das ganze wesentlich verfeinert:
Code:
$Result = Get-Process |
Select-Object -Property processname, mainwindowhandle, id|
Where-Object -FilterScript {
$_.ProcessName -eq 'PCem'
}
While ($Result)
{
$Result = Get-Process |
Select-Object -Property processname, mainwindowhandle, id |
Where-Object -FilterScript {
$_.ProcessName -eq 'PCem'
}
foreach($obj in $Result)
{
if($obj.MainWindowHandle -eq 0)
{
Stop-Process -Id $obj.id -Force
}
}
}
Konnte nun auf meinem System keine Probleme mehr feststellen, es wird nur nach den wirklichen "PcEM" Prozessen gesucht, nicht mehr über ein "-like *PcEM*"
Zusätzlich hab ich noch die Eigenschaft "mainwindowhandle" gefunden, bei geschlossener Anwendung wird die Handle ID auf 0 gesetzt. Dies wird nun überprüft, und scheint besser zu arbeiten als die Suche nach einem leeren "mainwindowtitle".
Hier noch die Batch mit der ich jetzt starte, Timeout wird benötigt um die Anwendung zu initialisieren, dauert bei mir circa 2 Sekunden, also von System zu System unterschiedlich.
Code:
start d:\\Working\\PCEM\\pcem.exe --config "D:\\Working\\PCEM\\configs\\Win98SELite.cfg"
TIMEOUT /T 3 /NOBREAK
D:\\Users\\karschro\\Desktop\\CheckPCEM.exe
Passe den Code jetzt auch in den anderen Beiträgen an, und entferne die alten EXE Dateien.