我想设置一个热键来使用自动热键关闭 vlc 或 windows 媒体播放器。我在指南中看到了这个页面 - https://www.autohotkey.com/docs/commands/WinClose.htm
但这似乎不起作用,这是我尝试过的:-
#+:: Winclose ,"VLC Media player"
#+:: Winclose ,"VLC Media player 2.0.1"
#+:: Winclose ,"vlc"
它们似乎都不起作用。这是在 vlc 中没有播放任何内容的时候。如何设置热键以使用 vlc 中运行的任何内容关闭它?还是 Windows 媒体播放器?
注意:我知道我们可以Send ^Q
或Send !F4
但仅在 vlc 窗口处于活动状态时才有效,但我希望能够在 VLC 在后台播放音乐时结束它。
问题在于引号,也许还有 TitleMatchMode。
这将起作用:
参考:
可能存在多个问题:
窗口标题周围不应有引号。
在您的示例中,您可能希望使用 eg
WinClose, VLC media player
,其中VLC media player
是未加载文件的窗口的确切标题。播放媒体时窗口的标题会发生变化。例如
Awesome Song.ext - VLC media player
,当播放一个名为Awesome Song.ext
. 这可以在技术上解决SetTitleMatchMode, 2
,它可以实现部分标题匹配(如该问题的另一个当前答案中所示)。在测试中,我无法
#!
使用热键组合。所以我可能会建议选择另一个键或组合(我假设这是 Win+ Shift?)。如果您想要一种简单的方法在加载文件(或当前正在播放)时杀死 VLC,我可能会建议尝试例如:
我的理解是省略参数以
WinClose
使用例如最后找到的窗口if WinExist()
。请参阅有关WinTitle - Last Found Window的文档。您需要将两件事结合起来......
首先是正确的标题匹配,已在其他答案中详细说明(有几个细微差别需要注意)。请注意,某些事情可能不会一直按预期工作,例如此代码似乎并不总是有效......
上面的代码返回一个有效的 ID,
WinExist()
但在某些情况下尝试关闭它WinClose
可能不起作用(可能是因为 VLC 处理WM_CLOSE
窗口消息的方式)手头上的这段代码可能更普遍......
其次,除了正确的标题匹配之外,您还需要一个实际的热键定义。
我不知道您希望使用什么热键,但
#+::
它是两个修饰键(Windows 键和 Shift 键),没有定义实际的热键。如果您不确定热键定义是否正常工作,只需输入一条
MsgBox
语句,看看是否正确触发...例如:
然后,一旦您的热键定义正常工作,您就可以找出其余的代码。
此外,如果您要进行多行测试,例如将 MsgBox AND 您的代码放在一个块中,请从代码的热键定义之后的下一行开始,并确保使用
Return
语句来关闭热键定义...