Что нового

HotKey - Установка горячих клавиш

Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Добавь флаг $HK_FLAG_WAIT.

Код:
#Include <HotKey.au3>

Global Const $VK_ESCAPE = 0x1B
Global Const $VK_F12 = 0x7B

_HotKeyAssign(BitOR($CK_CONTROL, $VK_F12), 'Message', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_WAIT))
_HotKeyAssign(BitOR($CK_CONTROL, $VK_ESCAPE), 'Quit')

While 1
	Sleep(1000)
WEnd

Func Message()
	ClipPut('')
	Send('^+{LEFT}')
	Sleep(30)
	Send('^{INS}')
	Sleep(30)
	ConsoleWrite(ClipGet() & @CR)
EndFunc   ;==>Message

Func Quit()
	Exit
EndFunc   ;==>Quit
 

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Не помогает. Когда тестировал TextCorrection все флаги перепробовал.
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
AZJIO сказал(а):
Не помогает. Когда тестировал TextCorrection все флаги перепробовал.

У меня при любом раскладе и при любых скоростях нажатия никаких залипаний нет. Либо это проблема есть только у тебя, либо ты что-то не договариваешь... В последнем примере никаких залипаний быть не должно. Проверь еще раз. Без флага $HK_FLAG_WAIT при достаточно быстром отпускании клавиши да, наблюдались залипания, но с этим флагом залипаний я не обнаружил, сколько не старался.

И при чем здесь TextCorrection, мы сейчас решаем проблему на примере простого кода. Запусти последний пример еще раз.
 

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Yashied
либо ты что-то не договариваешь...
с чего бы?


Yashied
Проверь еще раз.
Проверил ещё раз, тоже самое, хотя для меня один раз критерий. Выделение происходит и вместо прокрутки работает размер шрифта.

По той ссылке, что я приводил, у beve тоже проблем не было, хотя у меня была.
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
AZJIO, извини, но я здесь не помощник, так как не могу воспроизвести данную проблему ни на одном компьютере, как бы я не старался. Пробывал на трех разных машинах, на XP и 7... Все OK, при любом раскладе.

:-\
 

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Yashied
Проверил в LiveCD, работает всё чётко... TextCorrection работает стабильно.

__________________________

Пришлось версию 0.5 делать под LiveCD, соответственно при более тщательном тесте залипания были один раз на каждые 4-5 использования. Изменения задержек нажатия и паузы (SendKeyDownDelay, SendKeyDelay) не помогали. А когда добавил комбинацию

_SendEx("{LCTRL}")
_SendEx("{RCTRL}")

то не одного глючного вызова.
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
А перехват клавиш мыши - скан-коды 0x04, 0x05, 0x06 с помощью HotKey возможен?

Так не работает:

Код:
#Include <HotKey.au3>
Global Const $VK_1 = 0x04
_HotKeyAssign($VK_1, 'Calc', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
While 1
    Sleep(10)
WEnd
Func Calc($iKey)
 Run('Calc.exe') 
EndFunc
 

prokazzza

Новичок
Сообщения
160
Репутация
2
Подскажите как заблочить горячие кнопки к примеру Ctrl+Shift+Esc, чет не разберусь как должен выглядеть скрипт (((
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
prokazzza сказал(а):
Подскажите как заблочить горячие кнопки к примеру Ctrl+Shift+Esc, чет не разберусь как должен выглядеть скрипт (((

CTRL+SHIFT+ESC в Windows 7 - это аналог CTRL+ALT+DEL в XP, и заблокировать эту комбинацию вам не даст Windows. А выглядеть это должно так:

Код:
_HotKeyAssign(BitOR($CK_CONTROL, $CK_SHIFT, $VK_ESCAPE), 'MyFunc')
 

prokazzza

Новичок
Сообщения
160
Репутация
2
Помогите дописать скрипт, чтобы при нажатии на левый ALT+ левый SHIFT + TAB вызывался диспетчер задач

Код:
#Include <HotKey.au3>

Global Const $VK_MENU = 0x12
Global Const $VK_SHIFT = 0x10
Global Const $VK_TAB = 0x1B

_HotKeyAssign(BitOR($VK_MENU, $VK_SHIFT, $VK_TAB), '')
 

prokazzza

Новичок
Сообщения
160
Репутация
2
Чет я нефига не понял, сделал вот такой скрипт

Код:
#Include <HotKey.au3>

Global Const $VK_MENU = 0x12
Global Const $VK_SHIFT = 0x10
Global Const $VK_TAB = 0x1B

_HotKeyAssign(BitOR($VK_MENU, $VK_SHIFT, $VK_TAB), "_task")

Func _task()
run(@SystemDir & "\taskmgr.exe")
EndFunc


Скрипт отрабатывает и закрывается, никаких изменений в системе не замечаю (((( Help плиз!!!
 

CreatoR

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

Код:
#Include <HotKey.au3>

Global Const $VK_MENU = 0x12
Global Const $VK_SHIFT = 0x10
Global Const $VK_TAB = 0x1B

_HotKeyAssign(BitOR($VK_MENU, $VK_SHIFT, $VK_TAB), "_task")

While 1
    Sleep(10)
WEnd

Func _task()
    Run(@SystemDir & "\taskmgr.exe")
EndFunc


В таком варианте он будет работать вечно, для завершения нужна другая горячая клавиша с функцией выхода.
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Одно замечание.

_HotKeyAssign(BitOR($CK_ALT, $CK_SHIFT, $VK_TAB), "_task")

Функция не воспринимает VK-константы для командных клавиш (CTRL, ALT, SHIFT и WIN).
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Обновил библиотеку до версии 1.62. Исправлен досадный баг, заключающийся в прекращении работы установленных горячих клавиш после выхода из экрана "Logon UI" (это то, что появляется при нажатии CTRL+ALT+DEL в Windows Vista/7) и в некоторых случаях после сообщений UAC. Несмотря на то, что в Windows XP эта ошибка не проявляется, я все же рекомендую всем использовать именно эту версию, как более стабильную.

Если нет возможности использовать новую версию этой библиотеки, то работоспособность горячих клавиш можно вернуть, повторно нажав и отпустив клавиши CTRL и ALT.

:smile:
 

wobl

Новичок
Сообщения
6
Репутация
0
Люди помогите я нуб тот еще,пытаюсь установить горячие клавиши, при помоши привиденных выше примеров, выдает ошибку ERROR: can't open include file <HotKey.au3> что делать?
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Скачай HotKey.au3 и помести его в C:\Program Files\AutoIt 3\Include.
 
Верх