Leser: 21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use Win32::Process; use Win32; use strict; use warnings; my $warten = 10; # Wartedauer sub ErrorMessage{ return Win32::FormatMessage( Win32::GetLastError() ); # letzter Win32-Fehler } my $ProcessObj; my $Arbeitsverzeichnis = "."; Win32::Process::Create( $ProcessObj, "C:\\Windows\\notepad.exe", # zu startendes Programm "notepad", # Kommandozeile 0, NORMAL_PRIORITY_CLASS, $Arbeitsverzeichnis ) || die ErrorMessage(); sleep($warten); # warte ein bisschen $ProcessObj->Kill(0) || die ErrorMessage();
2011-01-21T09:44:48 LinuxerWie willst Du Zeile 8-10 denn sonst eingeben?
Die Absicht, die hinter dieser Definition dieser Subroutine steckt, hast Du erkannt, oder?
'-R "C:\My Drive\Mir\"'
q(-R "C:\My Drive\Mir\")
2011-01-21T09:57:35 GwenDragon[...]
//EDIT:
q ist eine Funktion um den nachfolgenden Inhalt in einfache Anführungszeichen zu stellen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
my $Arbeitsverzeichnis = ".";
sub ErrorMessage{
return Win32::FormatMessage( Win32::GetLastError()); }
Win32::Process::Create(
$ProzessFGState,
"C:\\Programme\.....\\Programm.exe",
'-b -f "meineDat.txt"', 0,
NORMAL_PRIORITY_CLASS,
$Arbeitsverzeichnis
) || die ErrorMessage();
sleep($Pause);
2011-01-21T12:27:27 la_dy82Wenn das Programm übers Skript aufgerufen wird, dann erscheint: [meineDat.txt*].
2011-01-21T14:51:51 la_dy82So müsste es heißen:
'programm -b -f datei.txt'
Linuxer hatte Recht!!