Добрый день!
Пользователь работает в текстовом редакторе, а скрипт AutoIt висит в трее.
Пользователь выделяет текст в редакторе и нажимает хоткей.
AutoIt должен программно нажать CTRL+с в активном окне редактора.
В Windows XP я использовал команду ControlSend("", "", "", "^{INS}") и все работало.
Однако, в Windows 7 эта команда не работает почему-то. Пробовал разные варианты:
1)
2)
3)
Но ничего не работает. Хотя если нажать с клавиатуры CTRL+c, то текст копируется в буфер.
В чем может быть дело? (приложение выслать не могу - большое).
Добавлено:
Еще пробовал такой вариант, но тоже не работает :(
Пользователь работает в текстовом редакторе, а скрипт AutoIt висит в трее.
Пользователь выделяет текст в редакторе и нажимает хоткей.
AutoIt должен программно нажать CTRL+с в активном окне редактора.
В Windows XP я использовал команду ControlSend("", "", "", "^{INS}") и все работало.
Однако, в Windows 7 эта команда не работает почему-то. Пробовал разные варианты:
1)
Код:
Send("^c")
2)
Код:
ControlSend("", "", "", "^c")
3)
Код:
If GetDefaultLayout() = 1 Then
Send ("^с")
Else
Send ("^c")
EndIf
Но ничего не работает. Хотя если нажать с клавиатуры CTRL+c, то текст копируется в буфер.
В чем может быть дело? (приложение выслать не могу - большое).
Добавлено:
Сообщение автоматически объединено:
Еще пробовал такой вариант, но тоже не работает :(
Код:
Func _GetSelectedText($iSleep=100)
Local $iRet = 0
Local $sOld_Clipboard_Data = ClipGet()
ClipPut("")
Send("^{Insert}")
Local $sSelected_Data = ClipGet()
Local $iTimer = TimerInit()
While $sSelected_Data = "" And TimerDiff($iTimer) < $iSleep
$sSelected_Data = ClipGet()
Sleep(1)
WEnd
If $sSelected_Data <> "" Then $iRet = $sSelected_Data
ClipPut($sOld_Clipboard_Data)
Return $iRet
EndFunc