ist es möglich... (wahrscheinlich geht das wieder an 'just me', habe allerdings nichts auf die schnelle in deinen Sammlungen gefunden)
Eine Gui mit 2 ListView's.
Von LV2 (eine Spalte) einen Eintrag (oder mehrere markierte) per Drag & Drop in die LV1 ziehen, dabei abfangen was in dem Eintrag stand und ggf. irgendwas machen und LV1 neu befüllen.
Code: Select all
; GLOBAL SETTINGS ===============================================================================================================
#NoEnv
#SingleInstance Force
#NoTrayIcon
SetBatchLines -1
global WinVersion := RtlGetVersion()
; GUI ===========================================================================================================================
Gui, +hWndhMainGUI
Gui, Margin, 10, 10
Gui, Font, s9, Segoe UI
Gui, Add, ListView, xm ym w500 h400 vMyLV1 hWndhMyLV1 +LV0x14000, % "A|B|C|D|E"
if (WinVersion >= 0x0600)
SetWindowTheme(hMyLV1)
Gui, Add, ListView, x+10 yp w200 h400 vMyLV2 hWndhMyLV2 +LV0x14000, % "F"
if (WinVersion >= 0x0600)
SetWindowTheme(hMyLV2)
Loop, Files, % A_WinDir "\system32\*.dll"
LV_Add("", A_LoopFileName)
Gui, Show, AutoSize
HideFocusBorder(hMainGUI)
return
; SCRIPT ========================================================================================================================
GuiDropFiles:
LV_Delete()
; ....
return
; FUNCTIONS =====================================================================================================================
RtlGetVersion()
{
static RTL_OSV_EX, init := NumPut(VarSetCapacity(RTL_OSV_EX, A_IsUnicode ? 284 : 156, 0), RTL_OSV_EX, "uint")
if (DllCall("ntdll\RtlGetVersion", "ptr", &RTL_OSV_EX) != 0)
throw Exception("RtlGetVersion failed", -1)
return ((NumGet(RTL_OSV_EX, 4, "uint") << 8) | NumGet(RTL_OSV_EX, 8, "uint"))
}
SetWindowTheme(handle)
{
if (HRESULT := DllCall("uxtheme\SetWindowTheme", "ptr", handle, "wstr", "Explorer", "ptr", 0) != 0)
throw Exception("SetWindowTheme failed: " HRESULT, -1)
return true
}
HideFocusBorder(wParam, lParam := "", Msg := "", handle := "") ; by 'just me'
{
static Affected := []
static WM_UPDATEUISTATE := 0x0128
static SET_HIDEFOCUS := 0x00010001 ; UIS_SET << 16 | UISF_HIDEFOCUS
static init := OnMessage(WM_UPDATEUISTATE, Func("HideFocusBorder"))
if (Msg = WM_UPDATEUISTATE) {
if (wParam = SET_HIDEFOCUS)
Affected[handle] := true
else if Affected[handle]
DllCall("user32\PostMessage", "ptr", handle, "uint", WM_UPDATEUISTATE, "ptr", SET_HIDEFOCUS, "ptr", 0)
}
else if (DllCall("IsWindow", "ptr", wParam, "uint"))
DllCall("user32\PostMessage", "ptr", wParam, "uint", WM_UPDATEUISTATE, "ptr", SET_HIDEFOCUS, "ptr", 0)
}
; EXIT ==========================================================================================================================
GuiClose:
GuiEscape:
ExitApp
; ===============================================================================================================================