Что нового

[Мышь, клавиатура] Команда Send() не переваривает код таких Ascii симолов как...как решить проблему

Exieros

Новичок
Сообщения
6
Репутация
0
Команда Send ни в какую не хочет вводить символ DLE вот таким вот образом
Код:
Send("{ASC 016}")

"Решил" проблему тем, что копирую в буфер обмена этот символом методом ClipPut() и потом эмулирую нажатие клавиш Ctr+V, все идеально работаеть если бы не одно но. Игра в которую будут вводится символы почему - то обновляет буфер обмена только при сворачивании-разворачивании. Тоесть я програмно копирую в буфер обмена что-то и пока я не сверну-разверну окно игры буфер обмена будет старым, поэтому тот способ, что я использую не подходит.

В общем как вставить такие символы как DLE, DC1, DC2, DC3, FF и т.д.



Добавлено:
Сообщение автоматически объединено:

UP. Проблема не решена.
 

dimusikus

Новичок
Сообщения
7
Репутация
0
Re: [Мышь, клавиатура] Команда Send() не переваривает код таких Ascii симолов как...как решить проб

Что за игра? браузерная?
Попробуй функцию:
Код:
ControlSend("твоя игра", "", "TEdit1", "твой навороченный символ")


Либо отправь сообщение контролу:
Код:
$hCtrl = ControlGetHandle("твоя игра", "", "Edit1")
_SendMessage($hCtrl, $WM_PASTE)


Либо попробуй отправить сообщения окну что необходимо обновить буфер обмена:
Код:
$hWnd = WinGetHandle("твоя игра")
_SendMessage($hWnd, WM_PAINTCLIPBOARD)


Поиграйся этими методами, может что и получится.
 
Автор
E

Exieros

Новичок
Сообщения
6
Репутация
0
Re: [Мышь, клавиатура] Команда Send() не переваривает код таких Ascii симолов как...как решить проб

Игра полноэкранная, использующая DirectX. Следовательно контролы в ней никакие не отлавливаются. Попробовал третий вариант через
Код:
_SendMessage($game, $WM_PAINTCLIPBOARD)

Не помогло. Сейчас функция имеет следующий вид
Код:
Func PastRed()
   ClipPut(Chr(18))
   _SendMessage($game, $WM_PAINTCLIPBOARD)
   sleep(100)
   _SendEx("^v")
EndFunc

Хэндл окна задается в самом начале кода. И все равно он обновляет буфер только при сворачивании-разворачивании.
 

dimusikus

Новичок
Сообщения
7
Репутация
0
Re: [Мышь, клавиатура] Команда Send() не переваривает код таких Ascii симолов как...как решить проб

Попробуй ещё поиграться:
Код:
WinSetState($sTitle, "", @SW_MINIMIZE)
WinSetState($sTitle, "", @SW_MAXIMIZE)


Ещё хорошо бы тут в начале заморозить размер и позицию окна чтоб оно недёргалось чем то вроде:
Код:
GUICtrlSetResizing ( controlID, $GUI_DOCKALL)


или просто поставь команду:
Код:
WinSetState($sTitle, "", @SW_MAXIMIZE)


если непоможет, то думаю всё безнадёжно.
 
Автор
E

Exieros

Новичок
Сообщения
6
Репутация
0
Re: [Мышь, клавиатура] Команда Send() не переваривает код таких Ascii симолов как...как решить проб

К сожалению не помогает.
 
Верх