Что нового

Drag'n'Drop в чужое окно

korvindeson

Новичок
Сообщения
19
Репутация
0
Добрый день. Не могу разобраться, долго уже сижу, много вариантов пробовал, не работаают.
Что требуется? Послать в окно сторонней программы файл .jpg. Можно конечно просто мышкой его тянуть откуда нибудь, но как-то это не хорошо.
Как я понял, реально это сделать только через WM_DROPFILES message. Но реализацию, которая у меня бы заработала найти не удалось. Некую функцию, чтоб можно было задать окно, файл, координаты. Вернее функцию-то я нашёл, только не работает.
http://www.autoitscript.com/forum/topic/122881-files-drag-drop/
 

Cho-cha

Новичок
Сообщения
2
Репутация
0
Привет сообществу! Это мой первый ответ начинающего, не судите строго.
Функция _FileDragDrop()- работает. Подобная проблема возникает при вбросе файла в приложения написанные на Qt. Очевидно Au3Info не предоставляет нужной информации по классам окна в подобных приложениях, соответственно получается следующее:

Код:
$hWnd = WinGetHandle("[CLASS:Notepad]")
MsgBox(0,"descriptor",$hWnd)
$pathTrue=@ScriptDir&"\point.txt"
WinActivate("[CLASS:Notepad]")
Sleep(200)
_FileDragDrop($hWnd,$pathTrue) ;drop в блокнот прошел успешно
MsgBox(0,"return",_FileDragDrop($hWnd,$pathTrue)) ;возвращает True

;тестирую на Qt creator в стартовом окне
$hWnd = WinGetHandle("[CLASS:Qt5QWindowIcon]")
MsgBox(0,"descriptor",$hWnd)
$pathTrue=@ScriptDir&"\point.txt"
WinActivate("[CLASS:Qt5QWindowIcon]") ;окно становится активным
Sleep(200)
_FileDragDrop($hWnd,$pathTrue) ;НЕ импортирует файл
MsgBox(0,"return",_FileDragDrop($hWnd,$pathTrue)) ;возвращает True


Попробовал Control_Viewer_v1.1 и вручную последовательно занес в функцию все обнаруженные дескрипторы:
_FileDragDrop("Дескриптор 1",$pathTrue)
_FileDragDrop("Дескриптор 2",$pathTrue)
...
_FileDragDrop("Дескриптор N",$pathTrue)
Импорт не происходит, везде функция возвращает False.

Уперся в UIAutomate Русское сообщество AutoIt » Общий раздел по AutoIt » Примеры и рабочие проекты » UDF - Пользовательские функции (Модератор: Garrett) » UIAutomate но не понял как этим пользоваться... Уверен выход есть!
Подскажите правильную ссылку на "почитать", заранее спасибо!
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Cho-cha
Попробуйте добавить в функцию координаты точки сброса. По ссылке в первом сообщении есть пример для Notepad++ с использованием координат.
 
Верх