Autohotkey 如何确定“选择文件”对话框何时处于活动状态?

Autohotkey 如何确定“选择文件”对话框何时处于活动状态?,autohotkey,Autohotkey,我正在尝试确定文件选择对话框何时处于活动状态,但无法确定 SetTitleMatchMode,1 FileSelectFile, SelectedFile Winwaitactive,Select File - Msgbox,File Select Dialog is active ; This is never fired if (SelectedFile = "") MsgBox, The user didn't select anything. else

我正在尝试确定文件选择对话框何时处于活动状态,但无法确定

SetTitleMatchMode,1
FileSelectFile, SelectedFile
Winwaitactive,Select File - 
Msgbox,File Select Dialog is active    ; This is never fired
if (SelectedFile = "")
    MsgBox, The user didn't select anything.
else
    MsgBox, The user selected the following:`n%SelectedFile%

你能告诉我我做错了什么吗?

在该线程上,代码执行在
FileSelectFile
行上停止,直到选择了一个文件。因此,您的代码将永远无法通过
WinWaitActive
命令,因为在该命令运行时,您试图匹配的窗口不再打开。
而且,如果不中断
FileSelectFile
命令的功能,就无法中断该线程。
因此,如果没有真正的多线程处理,您想要做的事情是不可能的

但也许你可以做一个简单的假设如下:

MsgBox, % "File select will begin after you click OK"
FileSelectFile, output
MsgBox, % "File select ended"

在该线程上,代码执行在
FileSelectFile
行上停止,直到选择了一个文件。因此,您的代码将永远无法通过
WinWaitActive
命令,因为在该命令运行时,您试图匹配的窗口不再打开。
而且,如果不中断
FileSelectFile
命令的功能,就无法中断该线程。
因此,如果没有真正的多线程处理,您想要做的事情是不可能的

但也许你可以做一个简单的假设如下:

MsgBox, % "File select will begin after you click OK"
FileSelectFile, output
MsgBox, % "File select ended"

谢谢你的解释。您是否可以确认无法在XP/2003以后的Windows“我的电脑”视图上启动“文件选择文件”对话框?这就是为什么我希望获得活动选择对话框,然后聚焦地址字段并粘贴“我的电脑”CLSID。恐怕现在没有解决办法。谢谢你的帮助。我想有办法做到这一点,但我没有这方面的任何信息。但是,是的,文档似乎确实指定了不能只为该命令输入CLSID。必须用DLLCALING定制一些东西。因此,对于使用默认的
FileSelectFile
命令,我很确定您唯一的解决方案是多线程(启动另一个脚本来聚焦地址字段并为您导航,或者使用AHK_H)谢谢您提供的详细信息。非常感谢。我将尝试用第二个脚本来实现这一点。祝你一切顺利!谢谢你的解释。您是否可以确认无法在XP/2003以后的Windows“我的电脑”视图上启动“文件选择文件”对话框?这就是为什么我希望获得活动选择对话框,然后聚焦地址字段并粘贴“我的电脑”CLSID。恐怕现在没有解决办法。谢谢你的帮助。我想有办法做到这一点,但我没有这方面的任何信息。但是,是的,文档似乎确实指定了不能只为该命令输入CLSID。必须用DLLCALING定制一些东西。因此,对于使用默认的
FileSelectFile
命令,我很确定您唯一的解决方案是多线程(启动另一个脚本来聚焦地址字段并为您导航,或者使用AHK_H)谢谢您提供的详细信息。非常感谢。我将尝试用第二个脚本来实现这一点。祝你一切顺利!