如何从与AutoHotKey同名的CMD窗口列表中选择我想要的特定窗口?

时间:2014-12-02 14:37:43

标签: autohotkey

我想创建一个AutoHotKey脚本,将命令发送到某个CMD窗口,但是我在选择所需窗口时遇到问题,因为我运行的是至少3-4个CMD窗口并且它们的标题都以“C”开头:\ Window \ System32 \ cmd.exe“所以我最多只是逐个循环通过窗口。

如何从具有相同名称的CMD窗口列表中选择我想要的特定窗口?

enter image description here

大部分情况都是我使用的CMD,我想要定位具有最通用名称的第一个(左上角)。

3 个答案:

答案 0 :(得分:2)

您可以尝试从AHK启动它并从那里自动检索ID ...

你也可以尝试构建一个“教”哪个CMD使用的函数......这需要在它出现后点击它们一次CMD窗口...基本上你的AHK脚本然后必须读取这个的UID窗口。

  

温格特

     

检索指定窗口的唯一ID,进程ID,进程名称或其控件列表。它还可以检索符合指定条件的所有窗口的列表。

     

WinGet, OutputVar [, Cmd, WinTitle, WinText, ExcludeTitle, ExcludeText]

例如:WinGet, OutputVar , ID , A将检索活动窗口的ahk_id

但如果没有进一步的细节,很难说出你真正需要的是什么。

答案 1 :(得分:0)

我认为您无法使用AutoHotkey区分不同的cmd.exe窗口。

但您可以使用其他命令行软件,以便使用AutoHotkey区分不同的命令行会话。例如,herehere是其他一些命令行软件。使用google可以轻松找到其他软件。查看截图,其中大多数都有不同命令行会话的选项卡。您可以使用AutoHotkey GUI自动化命令在不同选项卡之间切换。

答案 2 :(得分:0)

初始化窗口时,您可以使用title命令。

Run, %comspec% /k cd c:\ && title MyWindow 1 && tasklist
winwait,MyWindow 1
WinMove,MyWindow 1,,20,20
Run, %comspec% /k cd c:\ && title MyWindow 2
winwait,MyWindow 2
WinMove,MyWindow 2,,20,365
ControlSend,,taskkill /pid ` ,MyWindow 2