【问题标题】:Perl detached CLI exe that can be monitoredPerl 分离的 CLI exe 可以被监控
【发布时间】:2013-11-18 13:13:04
【问题描述】:

在 Windows XP PC 上,我想要一个 perl 脚本,它可以在它们自己的窗口中启动多个独立的 CLI exe 进程。然后,该脚本将能够监视 PID,例如,以确定分离的进程何时完成。我尝试了很多想法,但没有一个会给我新的窗口。 System (start...) 我无法监控新进程。 Win32:process 我无法为我希望运行的 CLI exe 获取新窗口。我猜我在这里错过了一个技巧。

【问题讨论】:

    标签: windows perl process


    【解决方案1】:

    CREATE_NEW_CONSOLE 传递给Win32::Process::CreateProcess

    【讨论】:

    • 这是我的第一次尝试。我没有新窗口,dos exe 的所有输出都转到了运行 perl 脚本的窗口。
    • 如果它有帮助,这是我使用过的一个版本:Win32::Process::Create($proc, "C:\\Program Files\\WinFF\\ffmpeg.exe", 'ffmpeg. exe -i test.mp3 -vn -acodec libvo_aacenc -b:a 64k -ac 2 -ar 22050 temp.m4a', 1, CREATE_NEW_CONSOLE, ".") ||死 Win32::FormatMessage(Win32::GetLastError());
    • 你真的导入了常量吗? (你用use strict; use warnings;,对吧?)
    • 这是我的测试脚本:使用 Win32::Process qw(STILL_ACTIVE);使用Win32;我的 $proc = "";我的 $exitcode; Win32::Process::Create($proc, "C:\\Program Files\\WinFF\\ffmpeg.exe", 'ffmpeg.exe -i test.mp3 -vn -acodec libvo_aacenc -b:a 64k -ac 2 -ar 22050 temp.m4a', 1, CREATE_NEW_CONSOLE, ".") ||死 Win32::FormatMessage(Win32::GetLastError()); $proc->GetExitCode($exitcode);而 ($exitcode == 259){ 睡眠 (1); $proc->GetExitCode($exitcode); } 打印“完成\n”;
    • 所以我的两个问题都没有。把它们变成是的。首先添加use strict; use warnings;
    猜你喜欢
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多