Это возможно . Давайте зададим себе два вопроса:
Что происходит, когда мы перетаскиваем файл?
- Функция API вызывается, чтобы начать перетаскивание файла.
- Во время перетаскивания отображается окно.
- Функция API вызывается при удалении файла.
- Операция выполнена.
Как мы можем изменить поведение перетаскивания?
- Мы могли бы подключить функции API и настроить параметры / код для перемещения вместо копирования.
- Но есть более простой способ : мы могли бы использовать модификатор горячих клавиш при перетаскивании ...
Таким образом, с помощью некоторых простых сценариев мы можем удерживать клавишу SHIFT, когда вы удаляете файл в зависимости от окна!
После некоторых исследований, чтобы выяснить имя окна (перехватить функции заголовка окна с помощью API Monitor ), мы можем теперь создать скрипт AutoHotkey, который будет удерживать клавишу SHIFT до тех пор, пока вы не уроните файл .
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
На самом деле не пробовал приведенный выше код, но думаю, что он должен работать.
Возможные улучшения:
- Вместо этого используйте AutoIt с такой функцией, как WinWait, чтобы вам не приходилось реагировать на мышь.
- Перейдите к сложным вещам, напишите и перехватите функции API, хотя вам, возможно, придется немного взломать.
Я надеюсь, что приведенный выше скрипт работает или что я дал вам хорошее начало. :-)