是的,Win32::Process可以返回完整签名的32位退出码。使用GetExitCode
方法。但它有点棘手,因为返回值是而不是退出代码(它是Windows GetExitCodeProcess函数的返回值,它表示函数成功或失败)。退出代码存储到您传递给方法的变量中。
use Win32::Process;
use Win32;
sub ErrorReport{
print Win32::FormatMessage(Win32::GetLastError());
}
my $ProcessObj;
Win32::Process::Create($ProcessObj,
"C:\\winnt\\system32\\notepad.exe",
"notepad temp.txt",
0,
NORMAL_PRIORITY_CLASS,
".") or die ErrorReport();
$ProcessObj->Wait(INFINITE);
my $exitCode;
$ProcessObj->GetExitCode($exitCode) or die ErrorReport();
来源
2011-07-22 07:48:22
cjm
优秀的例子。谢谢! (现在唯一的问题显然是Wait(INFINITE)有点没有反应:-) –