如何查找WinActivate参数的名称

时间:2016-03-13 07:01:37

标签: windows-10 autohotkey

我正在编写一个脚本,用于填写Microsoft Edge中的表单。我知道我应该使用WinActivate改变焦点,但我不知道如何找出论点应该是什么?例如,如果我去Stackoverflow,我可以猜测它会像Stack Overflow - Microsoft Edge但是如果标题更长,它会在工具栏中被截断,我老实说我不知道​​在哪里可以看到完整的标题一个过程?我试过任务管理器。

有更好的方法吗?依赖程序的标题似乎有些苛刻,特别是当网站的标题决定它时。

基本上我问,你如何使用WinActive来改变焦点?

Process, Exist, MicrosoftEdge.exe
EdgePID = %ErrorLevel%
if( EdgePID )
{
    MsgBox, Edge is running, with PID: %EdgePID%
}
WinGetTitle, Title , ahk_pid %EdgePID%
MsgBox, Title: %Title%
IfWinExist, %Title%
    WinActivate ; this doesn't work

1 个答案:

答案 0 :(得分:0)

您可以使用应始终相同的进程名称。我假设Microsoft Edge的名称是 MicrosoftEdge.exe ,如果您的进程名称不同,请更改它。

首先获取进程 PID ,它存储在ErrorLevel中:

Process, Exist, MicrosoftEdge.exe
EdgePID = %ErrorLevel%
if( EdgePID 
{
    MsgBox, Edge is running, with PID: %EdgePID%
}

然后使用特殊命令ahk_pid

获取该进程的窗口标题
WinGetTitle, Title , ahk_pid %EdgePID%
MsgBox, Title: %Title%

可以使用相同的方法激活窗口:

WinActivate, ahk_pid %EdgePID%

或者,可以直接使用进程名称:

WinActivate, ahk_exe MicrosoftEdge.exe