qddoit 发表于 2009-5-30 01:20:49

请教如何实现把文件拖入au3的界面即可执行命令?

本帖最后由 qddoit 于 2009-6-1 18:28 编辑


拖入界面即显示此文件大小等

lynfr8 发表于 2009-5-30 18:48:10

#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
$Form1 = GUICreate("文件拖放执行命令", 262, 86, -1, -1,-1,$WS_EX_ACCEPTFILES)
$Combo1 = GUICtrlCreateCombo("", 8, 8, 241, 25)
$dropzone = GUICtrlCreateLabel("", 8,8, 241, 25)
GUICtrlSetBkColor($dropzone, $GUI_BKCOLOR_TRANSPARENT)
      GUICtrlSetState($dropzone, $GUI_DISABLE)
      GUICtrlSetState($dropzone, $GUI_DROPACCEPTED)
$Edit1 = GUICtrlCreateEdit("", 8, 48, 241, 57, BitOR($ES_READONLY,$ES_WANTRETURN), 0)
GUICtrlSetData(-1, "请拖放文件到上面combo")
GUISetOnEvent($GUI_EVENT_DROPPED, "GUI_Drop")
GUISetOnEvent($GUI_EVENT_CLOSE, "GUI_Exit")
GUISetState(@SW_SHOW)
While 1
      Sleep(100)
WEnd
Func GUI_Exit()
      Exit
EndFunc
func GUI_Drop()
      $file=@GUI_DragFile&"|"
      GUICtrlSetData($Combo1, $file,@GUI_DragFile)
$filesize=FileGetSize (GUICtrlread($Combo1))
GUICtrlSetData($Edit1,'文件大小:'&$filesize/1048576&'   m')
EndFunc

lynfr8 发表于 2009-5-30 18:51:52

以上例子参考http://www.autoitx.com/forum.php?mod=viewthread&tid=1191&page=1&fromuid=1003#pid11267pcshara的代码
只能执行单一文件的大小显示,你可以自行增加其功能,例如先判断拖入内容是目录还是文件,然后分别用DirGetSize 或 FileGetSize 计算大小,如果是拖入多文件,那么需要进行数值运算了。

qddoit 发表于 2009-6-1 18:28:34

:face (26):

超级感谢~~~~~~

xiaopuff 发表于 2009-7-14 00:38:26

收藏
学习学习

zhangla 发表于 2011-3-12 20:18:49

学习了,非常有帮助。

today2004 发表于 2011-10-21 15:04:16

如何实现多次拖入 就是拖入一个 再拖入一个在第二行显示如此多行显示多次拖入

或者一次拖入多个 也这样显示
页: [1]
查看完整版本: 请教如何实现把文件拖入au3的界面即可执行命令?