Thread Win32::Process - Prozesskontrolle scheitert bei explorer.exe (12 answers)
Opened by Molaf at 2010-12-03 08:43

Molaf
 2010-12-03 08:43
#143282 #143282
User since
2007-10-11
119 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich habe Probleme einen explorer-Prozess wieder abzuschiessen, bei notepad bestehen diese Probleme nicht.
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use strict;
use Win32;
use Win32::Process;
   
sub ErrorReport{
        print Win32::FormatMessage( Win32::GetLastError() );
    }
my $ProcessObj;
Win32::Process::Create($ProcessObj,
        $ENV{SystemRoot}."\\explorer.exe",
        "explorer.exe D:\\",
        0,
        NORMAL_PRIORITY_CLASS,
        ".")|| die ErrorReport();

sleep 5;
$ProcessObj->Kill(0);

ersetze ich die zwei Zeilen beim Aufruf durch:
Code: (dl )
1
2
	$ENV{SystemRoot}."\\notepad.exe",
"notapad.exe C:\\test.txt",

... klappt alles wie erwartet, Notepad geht auf, nach 5 s ist er dann aus.
Der olle Explorer geht zwar auf (allerdings auch nur minimiert), lebt aber fröhlich weiter.

OS: WinXP sp3
Perl: 5.10 von ActivePerl

Versuche mit dem perl-eigenen kill und der PID waren übrigens bei keinem Programm erfolgreich, die Umsetzung auf Win scheint nicht so geglückt.

Gruß,
Molaf

//MODEDIT GwenDragon: Titel um Modulnamen ergänzt.
Das nächste Mal bitte Modul im Titel angeben.
Last edited: 2010-12-03 08:56:14 +0100 (CET)

View full thread Win32::Process - Prozesskontrolle scheitert bei explorer.exe