作者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/cn.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