Что нового

[Мышь, клавиатура] Не отжимается LCTRL

Nescoffe

Новичок
Сообщения
4
Репутация
0
Доброго времени суток.

Делаю горячую клавишу HotKeySet("^{Enter}", "PressCtrlEnter"), после которой зажимается левый CTRL и не отжимается.
Всяко пробовал отжать... не получается.
Пример кода:
Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compile_Both=y
#AutoIt3Wrapper_UseX64=y
#AutoIt3Wrapper_Res_Fileversion=1.0
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#Include <Misc.au3>
HotKeySet("^{Enter}", "PressCtrlEnter")
HotKeySet("{F2}", "End")
MsgBox(4096, 'Сообщение', 'Запущен скрипт переназначения клавиш отправки' & @CR & 'Для завершения работы скрипта нажмите клавишу F2')

While 1
	Sleep(10)
WEnd

Func PressCtrlEnter()
	Sleep(10)
	Send("{LCTRL UP}")
	Send("{CTRLUP}")
	DllCall('user32.dll', 'int', 'keybd_event', 'int', 0xA2, 'int', 0x02, 'int', 0, 'ptr', 0) ; LCTRL UP
	DllCall('user32.dll', 'int', 'keybd_event', 'int', 0x11, 'int', 0x02, 'int', 0, 'ptr', 0) ; CTRL UP
	;Send("{Enter}")
	ConsoleWrite(_IsPressed('A3'))
EndFunc   ;==>PressCtrlEnter

Func End()
	MsgBox(4096, 'Сообщение', 'Скрипт переназначения клавиш отправки завершен.')
	Exit Beep(500, 500)
EndFunc   ;==>End


Значение ConsoleWrite(_IsPressed('A3')) - True :(
 

InnI

AutoIT Гуру
Сообщения
4,982
Репутация
1,460
Nescoffe [?]
после которой зажимается левый CTRL и не отжимается
Во-первых, вы пытаетесь отжать левый контрол, а в консоль выводите состояние правого (А3).
Во-вторых, у вас перепутаны параметры вызова функции - поэтому контрол у вас нажимается. Чтобы отжать контрол нужно так:
Код:
DllCall('user32.dll', 'int', 'keybd_event', 'int', 0x11, 'int', 0, 'int', 0x02, 'ptr', 0)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,487
Nescoffe [?]
Всяко пробовал отжать... не получается
Не нужно отжимать, нужно предотвратить зажатие:

Код:
Func PressCtrlEnter()
    While _IsPressed('A2') Or _IsPressed('11')
        Sleep(10)
    WEnd
    
    Send("{Enter}")
    ConsoleWrite(_IsPressed('A2'))
EndFunc
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,487
Nescoffe

[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Верх