Re: [問題] 如何關閉使用system開啟的程式?
※ 引述《mosquito520 ( )》之銘言:
: 抱歉,由於我對於perl近乎無知,
: 使用perl是因為我想寫個簡單的程式。
: 這個程式需要連接網路送http request,
: 考量到寫程式的方便性以及發佈時的考量,
: ﹝C socket programming 我只會寫unix底下的,
: winsock到現在我還不知道怎麼用,
: PHP也很方便,但是發布的時候沒辦法包成執行檔,
: 總不可能要每個人去抓PHP來裝。
: VB、VC都不大熟...Orz﹞
: 基於上述考量,所以我選擇用perl來開發。
: 不過目前我碰到一個問題是大部分語言可能都會碰到的難題,
: ﹝C#除外,我在MSDN上有找到solution﹞
: 就是,我在windows底下開發,預計在windows底下執行。
: 我可以使用exec或是system開啟外部程式,
: 我也爬過版上的文章,google找了不少關鍵字。
: 我的問題是,我要如何關閉我用system開啟的外部程式?
: 我要開啟的外部程式是IExplore.exe
: windows的指令有taskkill可以使用,但是我需要知道我開啟的程式的pid,
: 同時也有tasklist可以使用,可是如果同時有兩個以上的IE在執行,
: 我不知道哪一個才是我開啟的。
: perl的function getppid是取得parent的pid,不適用...
: 所以想請問,有任何建議的方法嗎???
use Win32::Process::List;
use Win32::Process;
my $P = Win32::Process::List->new();
my %tasklist= $P->GetProcesses();
foreach $pid(keys %tasklist)
{
print "$pid $tasklist{$pid}\n";
#Win32::Process::KillProcess($pid, $errcode);
}
註解那行就是KILL的方法
~~~~~~~~~~~~~~
如果要跑這個範例不要拿掉那個註解
沒有設下任何條件if 會把所有程序都kill掉喔!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.197.133
※ 編輯: jjt 來自: 140.121.197.133 (01/19 10:29)
→
01/19 14:43, , 1F
01/19 14:43, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章
117
143
68
111