自动给文件选择窗口加上文件名为什么不行?
$a = FileOpenDialog("打开文件", "C:\", "所有文件(*.*)")$handle = WinGetHandle("打开文件", "")
If @error Then
MsgBox(0, "错误", "无法找到该窗口")
Else
ControlSend($handle, "", "Edit1", "AbCdE.jpg")
EndIf
AbCdE.jpg为什么加不上去? 回复 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
回复lzp4881
你这样做是不行的
AU3在调用 FileOpenDialog、InputBox、MsgBox 的时候, 会暂停脚 ...
lanfengc 发表于 2016-4-17 20:18 http://www.autoitx.com/images/common/back.gif
谢谢,用这个代码果然可以获取到。
不过我的窗口不是用$a = FileOpenDialog("打开文件", "C:\", "所有文件(*.*)")生成的,而是点击网页上一个按钮打开的,用你这个代码还是不行。应该怎么改才行呢。 应该和前几天的问题一样:http://www.autoitx.com/thread-51955-1-1.html
页:
[1]