Hi,
ich habe eine GUI in 3.3.12.0
Darauf ziehe ich Dateien aus dem Explorer.
Ich will die Datei entweder auf eines der beiden Labels links oder das große frei Feld rechts ziehen.
Soweit funktioniert dies momentan.
Fragen:
Geht dies auch ohne das "Dummy-Label" für den rechten Bereich?
Beim beenden kommt in der Console die Meldung "!>15:37:27 AutoIt3.exe ended.rc:-1073741819"
Spoiler anzeigen
AutoIt
#Region ;************ Includes ************
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <WinAPISys.au3>
#EndRegion ;************ Includes ************
Opt("GUIOnEventMode", 1)
Global $GUI = GUICreate("Test", 500, 55)
Global $haupt = GUICtrlCreateLabel("", 60, 0, 440, 55)
Global $idLabel_datei1 = GUICtrlCreateLabel("Datei 1:", 10, 10, 50, 20)
Global $idLabel_datei2 = GUICtrlCreateLabel("Datei 2:", 10, 30, 50, 20)
;mehrere Dateien auf die GUI ziehen und so einlesen
Global $g_hDll = DllCallbackRegister('_WinProc', 'ptr', 'hwnd;uint;wparam;lparam')
Global $g_pDll = DllCallbackGetPtr($g_hDll)
Global $g_hProc = _WinAPI_SetWindowLong($GUI, $GWL_WNDPROC, $g_pDll)
_WinAPI_DragAcceptFiles($GUI)
GUISetState()
GUISetOnEvent($GUI_EVENT_CLOSE, "_beenden")
GUICtrlSetOnEvent($idLabel_datei1, "_test")
GUICtrlSetOnEvent($idLabel_datei2, "_test")
GUICtrlSetOnEvent($haupt, "_test")
While 1
Sleep(10)
WEnd
Func _test()
MsgBox(0, 0, @GUI_CtrlId)
EndFunc ;==>_test
Func _WinProc($hWnd, $iMsg, $wParam, $lParam)
Local $aFileList
Switch $iMsg
Case $WM_DROPFILES
$aFileList = _WinAPI_DragQueryFileEx($wParam)
_WinAPI_DragFinish($wParam)
_WinAPI_MessageBeep(0) ;Ton erzeugen
MouseClick("")
Return 0
EndSwitch
Return _WinAPI_CallWindowProc($g_hProc, $hWnd, $iMsg, $wParam, $lParam)
EndFunc ;==>_WinProc
Func _beenden()
_WinAPI_SetWindowLong($GUI, $GWL_WNDPROC, $g_hProc)
DllCallbackFree($g_hDll)
Exit
EndFunc ;==>_beenden
Alles anzeigen