加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门站长网 (https://www.0592zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

windows – 使用Perl轮询进程退出

发布时间:2021-02-07 20:32:22 所属栏目:系统 来源:网络整理
导读:我正在使用Perl自动执行一些安装过程.现在我想知道我解雇的安装程序何时完成.我该怎么做呢?由于这是自动化工作,我不能要求人们在以后的某个时间发出一些命令.此功能应该是自动的.我如何在 Windows上执行此操作? 解决方法 Greg Hewgill的答案解决了您需要

我正在使用Perl自动执行一些安装过程.现在我想知道我解雇的安装程序何时完成.我该怎么做呢?由于这是自动化工作,我不能要求人们在以后的某个时间发出一些命令.此功能应该是自动的.我如何在 Windows上执行此操作?

解决方法

Greg Hewgill的答案解决了您需要的基础Windows API函数,但没有解决如何在Perl中使用它们的问题.您可以使用 Win32::Process模块:

use strict;
use warnings;

use Win32::Process;

Win32::Process::Create(
  my $process,'C:WINDOWSsystem32notepad.exe',# path of executable
  "notepad",# command line it sees
  0,# don't inherit our handles
  NORMAL_PRIORITY_CLASS,# process creation flags
  "."                                # current directory for process
) or die $^E;

print "startedn";

$process->Wait(INFINITE);

print "donen";

$process->GetExitCode(my $exitcode) or die $^E;

print "process exit code $exitcoden";

如果您需要一次等待多个对象,也可以将$process传递给Win32::IPC函数wait_any和wait_all.

(编辑:厦门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读