使用VBScript激活具有已知进程ID的正在运行的进程
我拥有已在运行的应用程序进程的进程ID。 现在我想用VBScript通过这个进程id激活同一个窗口 假设使用VBScript激活具有已知进程ID的正在运行的进程,vbscript,Vbscript,我拥有已在运行的应用程序进程的进程ID。 现在我想用VBScript通过这个进程id激活同一个窗口 假设mypid是进程ID Set Shell = CreateObject("WScript.Shell") Shell.AppActivate(mypid) 这在Windows 7上返回false 如果有人有答案,我想知道。请查看此链接: 这是好的解决方案的总结: Set WshShell = CreateObject("WScript.Shell") for i=0 to 300
mypid
是进程ID
Set Shell = CreateObject("WScript.Shell")
Shell.AppActivate(mypid)
这在Windows 7上返回false
如果有人有答案,我想知道。请查看此链接:
这是好的解决方案的总结:
Set WshShell = CreateObject("WScript.Shell")
for i=0 to 300 'this loop will continue about 30 sec if this not enough increase this number
Rtn=WshShell.AppActivate(myPID) 'have to be the windows title of application or its process ID
If Rtn = True Then
WshShell.SendKeys "......." ' send key you like
wscript.sleep 100 ' stop execute next line until finish close app
End If
wscript.sleep 100
Next
@eurotrash
retrn=shell.AppActivate(mypid)
是正确的方法。AppActivate
方法返回一个Boolean
值,用于标识过程调用是否成功。此方法将焦点更改为指定的应用程序或窗口,但不影响它是最大化还是最小化。当用户采取更改焦点(或关闭窗口)的操作时,焦点从激活的应用程序窗口移动。您所说的“打开同一窗口”是什么意思?如果进程正在运行,则窗口应该已经打开。你想把窗户放在前面吗?我想把窗户放在前面。它不这样做。shell.appactivate mypid与shell.appactivate(mypid)相同。此外,如果不保存返回值,仍然会运行命令