Что нового

[Автоматизация] ControlSend Комбинации клавиш Shift+*

syche

Новичок
Сообщения
7
Репутация
1
При использовании ControlSend, комбинации клавиш вроде Shift+1 отправляются только в активное окно, а не в то, которое должны, при этом остальные отдельные символы отправляет как полагается в нужное окно. Можно както исправить?

пробовал отсылать так
Код:
ControlSend($hWnd, '', '', '{LSHIFT}{1}')

и так
Код:
ControlSend($hWnd, '', '', '+{1}')

но результат 1 и тотже, комбинация отсылается только в активное окно.
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Код:
Run("notepad.exe")
WinActivate("[class:SciTEWindow]");Активирует окно редактора SciTe можно изменить на другое
$hWnd=WinGetHandle("Безымянный — Блокнот")
ControlSend($hWnd,'',15,"+{1}")
 
Автор
S

syche

Новичок
Сообщения
7
Репутация
1
ничего не поменялось
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
syche
Так вам куда нужно высылать строку\команду, в окно или какой то элемент этого окна?
 
Автор
S

syche

Новичок
Сообщения
7
Репутация
1
просто в окно
 

ivsatel

Продвинутый
Сообщения
319
Репутация
84
syche

А так?
Код:
#AutoIt3Wrapper_Run_Tidy=y

Local $i

Run("notepad.exe")
Run("C:\Program Files\AkelPad\AkelPad.exe")

Sleep(500)

While 1
	$i += 5
	Sleep(500)
	If WinExists("[class:AkelPad4]") Then
		WinActivate("[class:AkelPad4]")
		ExitLoop
	ElseIf $i = 5 Then
		ExitLoop
	EndIf
WEnd

WinActivate("[class:Notepad]")

ControlSend("[class:AkelPad4]", '', '[CLASS:AkelEditW]', "+{1}")
 

InnI

AutoIT Гуру
Сообщения
4 505
Репутация
1 225
MnM, ivsatel
В ваших примерах происходит отправка в определённый контрол. Попробуйте оставить ControlID пустым, как это сделано у syche, и ничего работать не будет. Нет контрола - некуда посылать.

syche [?]
Код:
WinActivate()
Send()
 

ivsatel

Продвинутый
Сообщения
319
Репутация
84
InnI
А это как получается тогда если окно не активно? Не пойму...
syche
syche сказал(а):
при этом остальные отдельные символы отправляет как полагается в нужное окно.
 

InnI

AutoIT Гуру
Сообщения
4 505
Репутация
1 225
ivsatel [?]
На самом деле при пустом ControlID не совсем "не посылается", а посылается в "текущий" контрол. Если функция возвращает 1, значит какой-то контрол она нашла и ему отправила. Другое дело, как этот контрол реагирует... Код смотреть надо, чего гадать...
 
Автор
S

syche

Новичок
Сообщения
7
Репутация
1
Спасибо, теперь понятно в чем дело)) Увы контролов там нет. Буду тогда активное окно делать))

Всем спасибо))
 
Верх