预期
问题描述:
我有一个代码剪断上.ahk预期
#k::
if WinExist("a") {
Sendinput test
}
return
此代码应该发送“测试”只有当与名称窗口“一个”被打开,当我从文档阅读,如果WinExist不工作。但它不起作用 - (。它总是发送字符串“测试”,我需要代码片断,例如发送字符串或其他东西,只有当特定的窗口打开并且什么都不做时,窗口才会关闭。请告诉我,我做错了什么。
答
您的代码不会为我正常工作。
但是,除非你使用“SetTitleMatchMode”,如果您有任何窗口的标题,你的条件为真用“a”开始
“DetectHiddenText”也可能影响WinExist的返回值。
用更加独特的标题开始,这样
#k::
if WinExist("gob.txt - Notepad") {
Sendinput test
}
return
试验表明,该代码按预期工作时,你必须“gob.txt”在记事本中打开解决您的问题。然后测试你没有打开文件的时间。尝试SetTitleMatchMode的不同设置。希望你最终能够找出问题所在。我无法做到这一点,因为我不知道你在系统上打开了什么窗口。
通过右键单击任务栏上的AutoHotKey图标并选择“编辑此脚本”并仅包含正在测试的代码,可以清除可能影响您的测试的其他代码。
好运
+0
那么有没有一个命令可以匹配特定的打开窗口,或者这是不可能的? – IGRACH
该表达式评估为真,如果有一个活动窗口(见[WinTitle&一次匹配窗口(https://autohotkey.com/docs/misc/WinTitle.htm))。你很难找到一个系统,在任何时候都没有活动窗口。如果您需要识别特定的窗口,请按照文档。 – IInspectable
那么什么是与打开窗口的确切名称相匹配的命令。我一直在试图找到一个,但医生。是如此没有直觉。 – IGRACH