Dies ist möglich . Stellen wir uns zwei Fragen:
Was passiert, wenn wir eine Datei ziehen und ablegen?
- Eine API-Funktion wird aufgerufen, um die Datei zu ziehen.
- Beim Ziehen wird ein Fenster angezeigt.
- Beim Ablegen der Datei wird eine API-Funktion aufgerufen.
- Die Operation wird ausgeführt.
Wie können wir das Drag-Drop-Verhalten ändern?
- Wir könnten die API-Funktion (en) einhaken und die Parameter / den Code zum Verschieben statt zum Kopieren anpassen.
- Es gibt jedoch einen einfacheren Weg : Wir könnten beim Ziehen einen Hotkey-Modifikator verwenden ...
Durch einfaches Scripting können wir die UMSCHALTTASTE halten, wenn Sie die Datei basierend auf dem Fenster ablegen!
Nach einigen Nachforschungen, um den Namen des Fensters herauszufinden (Hook Window Title-Funktionen mit API Monitor ), können wir jetzt ein AutoHotkey- Skript erstellen, das die UMSCHALTTASTE bis nach dem Ablegen der Datei enthält .
LButton Down:: Send, IfWinExist, ahk_class SysDragImage { Send, } return LButton Up:: IfWinExist, ahk_class SysDragImage { Send, Sleep, 500 ; Feel free to adjust higher/lower to improve the behavior. Send, } Send, return
Ich habe den obigen Code nicht wirklich ausprobiert, aber ich glaube, dass er funktionieren sollte.
Mögliche Verbesserungen:
- Verwenden Sie AutoIt stattdessen mit einer Funktion wie WinWait, damit Sie nicht auf die Maus reagieren müssen.
- Entscheide dich für das Harte und schreibe und binde die API-Funktionen, obwohl du vielleicht ein bisschen hacken musst.
Ich hoffe das obige Skript funktioniert oder dass ich Ihnen einen guten Start gegeben habe. :-)