我正在寻找一个可以使窗口聚焦的命令。该命令必须在 cygwin 终端中工作,但我想这个命令将内置在 Windows 中,所以值得一提的是,我使用的是 Windows 10。我认为这个命令存在,但我无法通过谷歌搜索找到它。
我基本上是在问这个问题,但是用的是 cygwin 而不是 Ubuntu:Bash 命令聚焦特定窗口
这些 vbs 脚本看起来很有希望,但是当我在 cygwin 中执行它们时,它们既没有错误,也没有改变焦点。Windows 中的 CMD 命令切换到已打开的应用程序就像AppActivate
是一个 noop 一样。
我正在运行wscript.exe switch.vbs "App Title"
这个脚本:
WScript.CreateObject("WScript.Shell").AppActivate(WScript.Arguments.Item(0))
说明一下我为什么想要这个功能可能比较明智:我已经这样做了,当我的测试从我的 cygwin 命令行运行时,它会像 Windows 10 处理任何正常事件一样通知我:使用事件气泡。我用来创建该通知的命令 ( notifu
) 根据气泡发生的情况返回不同的退出代码。如果我单击它,它将返回退出代码 3,但无论聚焦哪个窗口,它都会保持聚焦。相反,我想单击气泡并聚焦我的 cygwin 终端。
答案1
如何将焦点设置到窗口上?
您可以使用nircmd win focus ...
。
例子:
nircmd win focus title "bash"
bash
我的 Cygwin 终端窗口的标题是什么。
句法
nircmd win [action] [find] [window to find] [Additional Parameters]
有多种方法来指定windows to find
:
handle: Finds the desired window by specifying the handle of the window in [window to find] parameter. id: Finds the desired child window by specifying the id of the child window. Useful only for child windows. class: Finds the desired window by specifying the class name of the window in [window to find] parameter. title: Finds the desired window by specifying the exact title of the window in [window to find] parameter. stitle: Finds the desired window by specifying the first few characters of the window in [window to find] parameter. ititle: Finds the desired window by specifying a sequence of characters that exists in the window title. alltop: All top windows. alltopnodesktop: All top windows, except of desktop and tray windows. active: The current active window. foreground: The window in foreground. desktop: The desktop window process:Finds the desired window by specifying process ID (for example: /3412) or process name (for example: firefox.exe).
来源奈尔克姆
去NirCmd——Windows 命令行工具下载nircmd
(下载链接位于页面底部)。