作者b2rex (文三先生字白木)
看板EzHotKey
標題[AHK-] 程式重複開啟但PID一樣
時間Fri Sep 16 18:43:13 2016
請教各位
我目前電腦有六個螢幕輸出
想要連續開啟數個IE跟WORD
將其放置在指定的螢幕上
1 2 3 4 5 6
[I/W][W][I][I/W][I/W][I/W]
但是在用 run 指令去執行(可回傳PID)
發現一個問題是
我連續RUN了四個IE出來, 但是PID卻是同一個
這樣不太容易分辨對應的網址到特定的螢幕裡
本來是想逐個用 winget 透過PID去抓其他的資訊
但是發現若是第2個或第3個 用傳回也是同樣的PID
會變成跟第1個一樣...
如果是接連著開是可以,但是只要時間有點延時
後面的WimMove就會移不到東西
WORD問題更嚴重,如果是連開的時候
第一個開的因為會有OFFICE的LOGO會頓
會導致後面有時會有錯誤
有加延時的話 PID 重複更易出現
因為同樣的PID,在WIMMOVE的控制上又有點怪怪
測試用的程式大約是
--------------------------------
run, iexplore.exe 網址1,,, PID1
sleep, 1000
run, iexplore.exe 網址2,,, PID2
sleep, 1000
run, iexplore.exe 網址3,,, PID3
sleep, 1000
run, iexplore.exe 網址4,,, PID4
sleep 3000
WinMove, ahk_pid %PID1%,,1,1,300,300
WinMove, ahk_pid %PID2%,,1921,1,300,300
WinMove, ahk_pid %PID3%,,3841,1,300,300
WinMove, ahk_pid %PID4%,,5761,1,300,300
---------------------------------
沒加紅字應該可以正常動作
但是有延時就會怪怪的
想請問要怎樣的做法比較合適改善呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.224.78.236
※ 文章網址: https://webptt.com/m.aspx?n=bbs/EzHotKey/M.1474022597.A.A04.html
1F:推 LPH66: 你應該要用視窗標題或視窗 handle 分辨, PID 不準 09/16 19:51
2F:→ LPH66: 因為一個 process 可以開多個視窗 09/16 19:51
3F:→ LPH66: 多次啟動時有的程式會偵測同時有同樣程式啟動中 09/16 19:53
4F:→ LPH66: 就把後啟動的給關掉, 資源交給先啟動的來管理 09/16 19:53
5F:→ LPH66: 這也是 PID 會不準的另一個原因 09/16 19:54
6F:→ LPH66: 從標題抓 handle 可以使用 WinExist 函數 09/16 19:54
7F:→ LPH66: 如果你確定新開之後會是作用中視窗也可以用 WinActive 抓 09/16 19:57
8F:→ b2rex: 可是如果標題四個都一樣呢.... 09/16 20:36
9F:→ AppleWine: 那有辦法抓到Foreground的PID嗎 09/17 14:04
10F:→ AppleWine: 可以的話 視窗先就定位 然後用滑鼠點一輪掃完全部的PID 09/17 14:06
12F:→ AppleWine: 想法是開完全部的IE之後再去抓它們的PID 09/17 15:20
13F:→ AppleWine: CMD_LINE 的內容可能要改掉 09/17 16:01
14F:→ AppleWine: "C:\Program Files\Internet Explorer\iexplore.exe" 09/17 16:01