回复 1# lzp4881
你这样做是不行的
AU3在调用 FileOpenDialog、InputBox、MsgBox 的时候, 会暂停脚本继续向下运行。要想实现你这个功能。 有两种办法。
第一种:直接调用FileOpenDialog时候赋予默认文件名
代码如下:
$a = FileOpenDialog("打开文件", "C:\", "所有文件(*.*)",1,"AbCdE.jpg")
第二种:在调用FileOpenDialog之前,启动一个定时器线程,定时器函数中,检测FileOpenDialog是否出现,如果出现,则设置Edit控件的内容。
代码如下:
#include <WinAPISys.au3>
;创建定时器回调函数
Local $hTimerProc = DllCallbackRegister('_TimerProc', 'none', 'hwnd;uint;uint_ptr;dword')
;创建定时器
Local $iTimerID = _WinAPI_SetTimer(0, 0, 100, DllCallbackGetPtr($hTimerProc))
;调用文件打开对话框
$a = FileOpenDialog("打开文件", "C:\", "所有文件(*.*)")
;结束时候,删除定时器
_WinAPI_KillTimer(0, $iTimerID)
;释放回调函数句柄
DllCallbackFree($hTimerProc)
Func _TimerProc($hWnd, $iMsg, $iTimerID, $iTime)
$handle = WinGetHandle("打开文件", "")
If Not @error Then ControlSetText($handle, "", "Edit1", "AbCdE.jpg")
EndFunc
|