Что нового

Скрипт для переназначения хоткеев для третьей программы

Suppir

Продвинутый
Сообщения
967
Репутация
62
Версия AutoIt: 3.

Описание: Например, у вас есть программа, в которой не предусмотрено изменение хоткеев. Но вам хочется переназначить какие-либо клавиши. Предлагаю создать скрипт на AutoIt, который позволит быстро переназначать хоткеи для заданной программы. То есть, когда данная программа активна, скрипт будет перехватывать хоткеи и посылать в программу вместо них другие.

Примечания: Базовые функции, конечно, известны (_isPressed, Hotkeyset, Send и т.п.), но насколько реально это реализовать?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
никакие конкретные детали тз не указаны. тем более что, сам указываешь
Suppir [?]
Базовые функции, конечно, известны
посему, пообщаемся лучше в подходящем разделе, а то подобная тема в столе заказов неприемлема.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Suppir,
Можно так попробовать. Заменяем у блокнота F5 (вставить дату и время) на 1. Но будет ли это работать на других программах, я не знаю.
Код:
#NoTrayIcon
#include <HotKey.au3>;Yashied, http://autoit-script.ru/index.php/topic,296.0.html

Opt('MustDeclareVars', 1)

Global Const $VK_F5 = 0x74
Global Const $VK_1 = 0x31
Global Const $VK_ESCAPE = 0x1B
Global $sClassName = '[Class:Notepad]', $sTitleScript = @ScriptName & '{[/@[email protected]\]}'

If WinExists($sTitleScript) Then Exit
AutoItWinSetTitle($sTitleScript)

_HotKeyAssign($VK_F5, '_No', $HK_FLAG_NOREPEAT, $sClassName)
_HotKeyAssign($VK_1, '_Yes', $HK_FLAG_NOREPEAT, $sClassName)
_HotKeyAssign($VK_ESCAPE, '_Exit')

While 1
	Sleep(20)
WEnd

Func _Yes()
	ControlSend($sClassName, '', '', '{F5}')
EndFunc   ;==>_Yes

Func _No()
	ConsoleWrite('Нажата F5' & @LF)
EndFunc   ;==>_No

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Верх