Автор Тема: HotKey - Установка горячих клавиш  (Прочитано 77042 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2313
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: HotKey - Установка горячих клавиш
« Ответ #60, Отправлен: Апрель 11, 2011, 22:37:10 »
OffTopicKaster  [?]
Цитировать
http://forum.script-coding.com/viewtopic.php?pid=46555#p46555
+1   ;D

Русское сообщество AutoIt

Re: HotKey - Установка горячих клавиш
« Ответ #60 Отправлен: Апрель 11, 2011, 22:37:10 »

Оффлайн wobl [?]

  • Новичок
  • *
  • Сообщений: 6
  • Репутация: 0
    • Награды
Re: HotKey - Установка горячих клавиш
« Ответ #61, Отправлен: Апрель 12, 2011, 20:48:09 »
Спасибо за орфографию.

Оффлайн wobl [?]

  • Новичок
  • *
  • Сообщений: 6
  • Репутация: 0
    • Награды
Re: HotKey - Установка горячих клавиш
« Ответ #62, Отправлен: Апрель 12, 2011, 21:53:00 »
Спасибо всем, не получалось из-за того, autoit установил до того как нашел этот сайт, ошибка была в том что при установке не указал«Select a default option for *.au3 files.»

Оффлайн Medved [?]

  • Новичок
  • *
  • Сообщений: 27
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: HotKey - Установка горячих клавиш
« Ответ #63, Отправлен: Январь 05, 2012, 17:37:08 »
HotKey UDF у меня на одном хоткее дает странный глюк -- отпадает весь ввод с клавы, пока снова на хоткей не нажмешь. Связано с функций WinActivate, которая запускается в теле основного цикла программы по изменению флага обработчиком хоткея. На встроенной функции все хорошо.

Пример:
(нажмите для показа/скрытия)

Нажимаем на любом окне паузу, немного ждем и повторяем нажатие -- клава отпадает. Нажимаем 3 раз и возвращается. С встроенной функцией такого не наблюдается. Как видим, глючит место, которое к прерываниям вообще отношения не имеет :whistle:
« Последнее редактирование: Январь 05, 2012, 17:42:34 от Medved »

Русское сообщество AutoIt

Re: HotKey - Установка горячих клавиш
« Ответ #63 Отправлен: Январь 05, 2012, 17:37:08 »

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379

  • Автор темы
  • Репутация: 2693
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: HotKey - Установка горячих клавиш
« Ответ #64, Отправлен: Январь 08, 2012, 17:33:17 »
Как не пытался, так и не смог воспроизвести указанную проблему. Какая у вас версия OC и AutoIt? И еще, может все же проблема не в WinActivate(), а в ControlSend(), которая в свою очередь генерирует низкоуровневое прирывание.


Думай, прежде чем говорить.

Оффлайн Dimmak [?]

  • Новичок
  • *
  • Сообщений: 172
  • Репутация: 9
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: HotKey - Установка горячих клавиш
« Ответ #65, Отправлен: Апрель 08, 2012, 04:11:36 »
Код: AutoIt [Выделить]
#Include <HotKey.au3>
#Include <vkConstants.au3>

HotKeySet( '+1', '_set' ) ; активирует горячую клавишу
HotKeySet( '+2', '_release' ) ; деактивирует


Func _set()
    _HotKeyAssign(BitOR($CK_WIN, $VK_1), '_func')
EndFunc

Func _release()
    _HotKeyAssign(BitOR($CK_WIN, $VK_1) )
EndFunc


Func _func()

    _release() ; теоретически должна произойти деактивация, но нет...
        ShellExecute('C:\')

EndFunc

While 1
    Sleep(10)
WEnd
 


Не могу разобраться...  :stars: Помогите пожалуйста  ;)
Почему при вызове _func() не происходит деактивация( Win+1 )?
ДОСТИЖЕНИЮ ИЗБРАННОЙ ЦЕЛИ может мешать другой вариант выбора...
  Но именно другие, ТОЧНЫЕ варианты выбора,
являются ПОСЛЕДОВАТЕЛЬНЫМИ звеньями той цепи,
которая и приводит к ДОСТИЖЕНИЮ ИЗБРАННОЙ ЦЕЛИ.

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379

  • Автор темы
  • Репутация: 2693
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: HotKey - Установка горячих клавиш
« Ответ #66, Отправлен: Апрель 08, 2012, 09:15:58 »
Это защита от вызова функций внутри callback'а. Отключить ее можно так:

Код: AutoIt [Выделить]
_HotKey_Assign(BitOR($CK_WIN, $VK_1), '', $HK_FLAG_NOERROR)


Оффлайн Mancoffee [?]

  • С 1991-го года все республики СССР имеют статус - колония США
  • Новичок
  • *
  • Сообщений: 86
  • Репутация: 1
  • Пол: Мужской
  • Свет проталкивает тьму ...
    • Народно-Освободительное Движение
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: HotKey - Установка горячих клавиш
« Ответ #67, Отправлен: Июнь 20, 2012, 23:35:39 »
Можно ли определить какой программой занята горячая клавиша? Занята ли вообще узнал с помощью ActiveHotKey. А чем неизвестно

Русское сообщество AutoIt

Re: HotKey - Установка горячих клавиш
« Ответ #67 Отправлен: Июнь 20, 2012, 23:35:39 »

Оффлайн zarius [?]

  • Новичок
  • *
  • Сообщений: 8
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: HotKey - Установка горячих клавиш
« Ответ #68, Отправлен: Февраль 05, 2013, 16:56:30 »
Проблема с использованием HotKey.au3: скрипт запускается, хоткеи отрабатываются нормально первые несколько раз, затем пару раз - отрабатываются через раз, затем вообще не отрабатываются? В чем может быть проблема?

Система: Win8Prof64  AutoIT: 3.3.8.1

Код: AutoIt [Выделить]
$script_ini_file = @ScriptDir & "\file.ini"

; прочитаем из файла значения горячих клавиш и назначим их в системе
$hk1 = IniRead($sчcript_ini_file, "HotKeys", "Proc1", BitOR($CK_CONTROL, $VK_RETURN))
$hk2 = IniRead($script_ini_file, "HotKeys", "Proc2", BitOR($CK_SHIFT, $VK_F1))
$hk3 = IniRead($script_ini_file, "HotKeys", "Proc3", BitOR($CK_SHIFT, $VK_F2))

_HotKeyAssign($hk1, 'Proc1', -1)
_HotKeyAssign($hk2, 'Proc2', -1)
_HotKeyAssign($hk3, 'Proc3', -1)

;цикл ожидания
While 1
    Sleep(10)
WEnd

 


На стандартной функции HotKeySet все отрабатывается нормально...

Оффлайн ABSOLUTE [?]

  • 090900
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: 0
  • Пол: Мужской
  • AutoIT User
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: HotKey - Установка горячих клавиш
« Ответ #69, Отправлен: Май 08, 2014, 08:23:35 »
Код: AutoIt [Выделить]
...
GUICreate("", 451, 224, 27, 82, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $StartMenu)
GuiCtrlCreateTab(0,0,401,224,$TCS_BUTTONS + $TCS_MULTILINE + $TCS_RAGGEDRIGHT + $TCS_RIGHTJUSTIFY + $TCS_FLATBUTTONS, 0x00000020)
GUICtrlCreateTabItem("[1]")
$t0hk1 = _GUICtrlCreateHotKeyInput(0,20,30,75,15,0,0x00000020)
...
...
; При нажатии на кнопку
$hotkey1 = _GUICtrlReadHotKeyInput($t0hk1)
_HotKeyAssign($hotkey1,'t0hk1')
...
...
; начало функции
 Func t0hk1()
   Send("Проверка скрипта")
   MsgBox(0,0,"123123123")
 EndFunc



Устанавливаю гор. клавишу в Input, жму кнопку: хоткей должен, по факту, приняться и выполнять функцию t0hk1, однако происходит это странным образом. В данном случае, выводит на экран только MsgBox, ничего не пишет. Если добавить к коду ещё:

Код: AutoIt [Выделить]
   Opt("SendKeyDelay", 40)
   Opt("SendKeyDownDelay",40)


Начинает писать подобное: "а скрипта" или "рипта".
И работает клавиша не постоянно: либо с залипанием, либо через раз. С чем может быть связано?
« Последнее редактирование: Май 08, 2014, 21:14:59 от ABSOLUTE »

Оффлайн madmasles [?]

  • Глобальный модератор
  • *
  • Сообщений: 7790
  • Репутация: 2313
  • Пол: Мужской
  • Награды За модерирование форума
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: HotKey - Установка горячих клавиш
« Ответ #70, Отправлен: Май 08, 2014, 09:28:37 »
ABSOLUTE,
ПредупреждениеЗа нарушение правил форума (пункт В.11):
Цитировать
Любые отрывки AutoIt кода необходимо заключать в тег [autoit] (подробнее), а обычный код соответственно в тег [code] (подробнее). Также большие выдержки текста помещайте под тег [spoiler] (подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.

Оффлайн ikif [?]

  • Новичок
  • *
  • Сообщений: 1
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: HotKey - Установка горячих клавиш
« Ответ #71, Отправлен: Сентябрь 04, 2014, 17:23:48 »
День добрый,
Я использую библиотеку HotKey.au3 и функцию _HotKey_Assign...
В Windows 7 and 8 работает нормально , а вот в Windows 8.1 не реагирует на ShortCutы и вылетает с ошибкой.
Продемострировать ошибку не могу , так как это не на моём компе 8.1.

Есть что с этим делать ? Или нет поддержки на 8.1 ?

Оффлайн oesoes [?]

  • Новичок
  • *
  • Сообщений: 171
  • Репутация: 10
  • Пол: Мужской
  • xor eax,eax
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: HotKey - Установка горячих клавиш
« Ответ #72, Отправлен: Сентябрь 04, 2014, 17:35:00 »
Ну попросите того, на чьей машине исполняется скрипт привести скрин ошибки, в чем проблема?

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1359
  • Репутация: 170
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: HotKey - Установка горячих клавиш
« Ответ #73, Отправлен: Сентябрь 06, 2014, 20:05:20 »
Или на виртуалку поставить 8.1 и там запустить.

Оффлайн winix [?]

  • Новичок
  • *
  • Сообщений: 34
  • Репутация: 0
    • блог
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: HotKey - Установка горячих клавиш
« Ответ #74, Отправлен: Июль 07, 2015, 08:08:29 »
Хорошо бы поправить в шапке что _HotKeyAssign не существует и надо писать _HotKey_Assign .

Теоретически если нажать f12 то должно быть нажато f11 и я увижу полноэкранный редактор, но ничего не проиходит, также как и с Send ("123") в блокноте.
Если я ставлю MsgBox то он работает.
Код: AutoIt [Выделить]
#include <Misc.au3>
#Include <HotKey.au3>

Global Const $VK_F12 = 0x7B

_HotKey_Assign($VK_F12, 'Message', BitOR($HK_FLAG_NOBLOCKHOTKEY,$HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))

While 1
    Sleep(10)
WEnd

Func Message($iKey)
Send ("{F11}")
 ;MsgBox(0, 'Hot key Test Message', 'F12 (0x' & Hex($iKey, 4) & ') has been pressed!')

EndFunc

Что сделать чтоб тут заработал Send ?

Задача проста, я нажимаю клавишу, скрипт активирует esc для вызова меню и тыкает в нужно место экрана. HotKeySet в проге не работает.


Добавлено: Июль 08, 2015, 01:36:15
Документация почти никакая, сделал в 2 скрипта.
Мало того что нужно вырубать HotKey так ещё кнопку надо писать в апострофах , хотя со встроенной HotKeySet всегда работали кавычки

Код: AutoIt [Выделить]
#include <Misc.au3>
#include <HotKey.au3>
#include <vkConstants.au3>

Dim $size[2] = [1280,1024]
AutoItSetOption("MouseCoordMode", 2)
$sProcName3 = "pzrun.exe"
If Not ProcessExists($sProcName3) Then Run($sProcName3)
_HotKey_Assign($VK_F9, 'kill0', BitOR($HK_FLAG_NOBLOCKHOTKEY,$HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
While 1
    Sleep(200)
 WEnd

Func kill0($iKey)
_HotKey_Disable($iKey)
;#cs
Send ('{ESC}')
;MouseClick("left",$size[0]/2,$size[1]/2-142,1,3)
MouseMove($size[0]/2,$size[1]/2-142,0)
Sleep(50)
MouseDown("left")
Sleep(20)
MouseUp("left")
;#ce
Exit
EndFunc
 


pzrun перезапускатор
Код: AutoIt [Выделить]
$sProcName2 = "pzavt.exe"
Do
   If Not ProcessExists($sProcName2) Then Run($sProcName2)
   Sleep(1000)
Until 0

« Последнее редактирование: Июль 08, 2015, 01:36:15 от winix, Причина: Объединение сообщений »

Русское сообщество AutoIt

Re: HotKey - Установка горячих клавиш
« Ответ #74 Отправлен: Июль 07, 2015, 08:08:29 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
3885 Просмотров
Последний ответ Декабрь 27, 2009, 00:44:54
от Anton
3 Ответов
4360 Просмотров
Последний ответ Июнь 20, 2010, 15:47:45
от Vlasssov
5 Ответов
6222 Просмотров
Последний ответ Июль 06, 2012, 00:57:11
от CreatoR
2 Ответов
3938 Просмотров
Последний ответ Июль 11, 2011, 16:24:27
от Kaster
2 Ответов
4911 Просмотров
Последний ответ Февраль 13, 2012, 17:02:17
от madmasles
0 Ответов
1767 Просмотров
Последний ответ Февраль 13, 2012, 16:48:54
от CreatoR
1 Ответов
3336 Просмотров
Последний ответ Февраль 16, 2012, 23:37:42
от CreatoR
10 Ответов
4152 Просмотров
Последний ответ Апрель 21, 2012, 22:05:30
от C2H5OH
11 Ответов
4092 Просмотров
Последний ответ Апрель 11, 2013, 15:07:03
от dimid
1 Ответов
910 Просмотров
Последний ответ Май 27, 2015, 22:20:02
от alex33