使用Win32 :: Process :: Create启动perl脚本

时间:2013-11-06 21:59:06

标签: perl winapi module

我想将我脚本中的所有系统命令转换为Win :: 32 :: Process :: Create命令。 CPAN告诉我语法:

Win32::Process::Create($obj,$appname,$cmdline,$iflags,$cflags,$curdir)

所以,我尝试应用它:

Win32::Process::Create( $Win32processObj,
                        "C:\\Perl64\\bin\\perl.exe",
                        "'C:\\Users\\script.pl','$arg'",
                         0,
                         NORMAL_PRIORITY_CLASS,
                         "." ) ||  die "Failed to create process.\n";

当我运行它时,我没有收到错误,但我也没有开始新的过程......

当我使用GetProcessID()时,我得到一个pid,但它与任务列表中的任何内容都不对应...(我假设创建的进程在我看到它显示在任务列表中之前结束)。 / p>

1 个答案:

答案 0 :(得分:1)

根据你的评论,Windows说它创建了这个过程。根据您的问题,您甚至可以获得您声称从未创建过程的进程ID。我要走出去,说你错了。

您现在应该检查流程结束的代码。 perl -E'say $!=THECODE;'可能会给你一个提示。但可能是因为你告诉Perl执行一个名为'C:\Users\script.pl'的文件(而不是C:\Users\script.pl)。