[AHK-] 程式重複開啟但PID一樣

看板EzHotKey作者 (文三先生字白木)時間7年前 (2016/09/16 18:43), 編輯推噓1(1013)
留言14則, 3人參與, 最新討論串1/1
請教各位 我目前電腦有六個螢幕輸出 想要連續開啟數個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://www.ptt.cc/bbs/EzHotKey/M.1474022597.A.A04.html

09/16 19:51, , 1F
你應該要用視窗標題或視窗 handle 分辨, PID 不準
09/16 19:51, 1F

09/16 19:51, , 2F
因為一個 process 可以開多個視窗
09/16 19:51, 2F

09/16 19:53, , 3F
多次啟動時有的程式會偵測同時有同樣程式啟動中
09/16 19:53, 3F

09/16 19:53, , 4F
就把後啟動的給關掉, 資源交給先啟動的來管理
09/16 19:53, 4F

09/16 19:54, , 5F
這也是 PID 會不準的另一個原因
09/16 19:54, 5F

09/16 19:54, , 6F
從標題抓 handle 可以使用 WinExist 函數
09/16 19:54, 6F

09/16 19:57, , 7F
如果你確定新開之後會是作用中視窗也可以用 WinActive 抓
09/16 19:57, 7F

09/16 20:36, , 8F
可是如果標題四個都一樣呢....
09/16 20:36, 8F

09/17 14:04, , 9F
那有辦法抓到Foreground的PID嗎
09/17 14:04, 9F

09/17 14:06, , 10F
可以的話 視窗先就定位 然後用滑鼠點一輪掃完全部的PID
09/17 14:06, 10F

09/17 15:18, , 11F
忽略上面的 換個方法 http://ideone.com/cdQeKm
09/17 15:18, 11F

09/17 15:20, , 12F
想法是開完全部的IE之後再去抓它們的PID
09/17 15:20, 12F

09/17 16:01, , 13F
CMD_LINE 的內容可能要改掉
09/17 16:01, 13F

09/17 16:01, , 14F
"C:\Program Files\Internet Explorer\iexplore.exe"
09/17 16:01, 14F
文章代碼(AID): #1Nsyp5e4 (EzHotKey)
文章代碼(AID): #1Nsyp5e4 (EzHotKey)