您的位置:首页 > 其它

perl进程操作

2015-10-10 09:30 351 查看
#!/user/local/bin/perl/

use Win32::Process;

use Win32;

##创建记事本进程并打开文件temp.txt

sub ErrorReport{

print Win32::FormatMessage( Win32::GetLastError() );

}

Win32::Process::Create($ProcessObj,

"C:\\WINDOWS\\system32\\notepad.exe",

"notepad temp.txt",

0,

NORMAL_PRIORITY_CLASS,

".")|| die ErrorReport();

$pid = $ProcessObj->GetProcessID();

print("pidnotepad:\t $pid \n");

use Win32::OLE;

$machine= shift || Win32::NodeName();

##下面枚举机器中正在运行的所有进程信息

#$class = "WinMgmts:{impersonationLevel=impersonate}!//$machine";

#$wmi = Win32::OLE->GetObject($class);

$wmi = Win32::OLE->GetObject('winmgmts:\\\\.\\root\\cimv2');##两种方法都可以的

$plist = $wmi->InstancesOf("Win32_Process");

$~ = PROC_LIST;

write;

$~ = PROC_INF;

$n = 0;

foreach $Proc (Win32::OLE::in( $plist )){

write;

$n++;

}

print " ===========================\n";

print " -> Processes number : $n <-\n";

print " ===========================";

# -----------------------------------------------------------------------------

format PROC_LIST =

@||| @|||||||||||||||| @||||||

"PID", "Process Name", " Memory"

---- ----------------- --------

.

format PROC_INF =

@||| @<<<<<<<<<<<<<<<< @|||||||

$Proc->{'ProcessID'},$Proc->{'Name'}, $Proc->{'PeakWorkingSetSize'}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: