Меню

Ошибка error h is not a valid key name

  • Меню сайта
      • Рекламка
      • Статистика
        • Всего
          Всего сообщений: 4153
          Тем: 977
          Всего объявлений 4
          Всего закрепленных 18
          Всего вложений 90


          Тем за день: 0
          Сообщений в день: 1
          Людей за день: 0
          Тем на человека: 3
          Сообщений на человека: 12
          Сообщений на тему: 4


          Пользователей: 341
          Новый пользователь: jilderbek

      • Календарь
        • << Янв 2023 >>
          Пн Вт Ср Чт Пт Сб Вс
          1 2 3 4 5 6 7
          8 9 10 11 12 13 14
          15 16 17 18 19 20 21
          22 23 24 25 26 27 28
          29 30 31

      • Наша команда
      • Активные
      • Дни рождения
        • Сегодня нет дней рождения.

          В следующие 7 дней

          Karley (40)

      • Новенькие
      • Поиск

Всего сообщений: 4153
• Страница 1 из 1

TrayMenu.exe — Error: «h» — исправление ошибки в Windows 10

Сообщение bat » 14 янв 2021, 04:39

Привет!
Проблема при загрузке Windows 10 с приложением TrayMenu.exe когда появляется окно с текстом Error: «h» is not a valid key name. The current thread will exit. Line# 055: Hotkey,%mwt_Hotkey%,mwt_Minimize

Изображение

Сразу скажу что данная хрень появляется не у всех, устранить ее довольно не сложно, для этого нужно зайти в папку C:WindowsSysWOW64Codecs, запустить Uninst.exe, далее убрать все галки кроме пункта Tray Menu и нажать Uninstall

Изображение

После этого перезагрузить компьютер, это все.

Аватара пользователя
bat
Администратор
 
Сообщения: 1065
Изображения: 367
Зарегистрирован: 20 апр 2010, 03:03
Откуда: — Оттуда
Рекорды: 8
Благодарил (а): 56 раз.
Поблагодарили: 42 раз.
БожествоБожествоБожествоБожествоБожествоБожествоБожествоБожествоБожествоБожество
  • Сайт
  • ICQ

TrayMenu.exe — Error: «h» — исправление ошибки в Windows 10

RtbSape

RTB.Sape
RtbSape
 


Всего сообщений: 4153
• Страница 1 из 1

Вернуться в Windows

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Содержание

  1. Устранить неполадки TrayMenu.exe (бесплатная загрузка)
  2. Обзор файла
  3. Что такое сообщения об ошибках TrayMenu.exe?
  4. TrayMenu.exe — ошибки выполнения
  5. Как исправить ошибки TrayMenu.exe — 3-шаговое руководство (время выполнения:
  6. Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.
  7. Шаг 2. Если вы недавно установили приложение Media Player Codec Pack (или схожее программное обеспечение), удалите его, затем попробуйте переустановить Media Player Codec Pack.
  8. Шаг 3. Выполните обновление Windows.
  9. Если эти шаги не принесут результата: скачайте и замените файл TrayMenu.exe (внимание: для опытных пользователей)
  10. filecheck .ru
  11. Вот так, вы сможете исправить ошибки, связанные с TrayMenu.exe
  12. Информация о файле TrayMenu.exe
  13. Комментарий пользователя
  14. Лучшие практики для исправления проблем с TrayMenu
  15. TrayMenu сканер
  16. 3 простых шага по исправлению ошибок TRAYMENU.EXE
  17. 1- Очистите мусорные файлы, чтобы исправить traymenu.exe, которое перестало работать из-за ошибки.
  18. 2- Очистите реестр, чтобы исправить traymenu.exe, которое перестало работать из-за ошибки.
  19. 3- Настройка Windows для исправления критических ошибок traymenu.exe:
  20. Как вы поступите с файлом traymenu.exe?
  21. Некоторые сообщения об ошибках, которые вы можете получить в связи с traymenu.exe файлом
  22. TRAYMENU.EXE
  23. процессов:
  24. [BUG] On Launch I get Error: «ERROR» is not a valid key name. #24
  25. Comments
  26. lukoma666 commented Aug 7, 2019
  27. Sauron-Dev commented Aug 7, 2019
  28. sWxJaPkT commented Aug 7, 2019 •
  29. Sauron-Dev commented Aug 7, 2019
  30. BanditTech commented Aug 7, 2019
  31. BanditTech commented Aug 8, 2019
  32. lukoma666 commented Aug 8, 2019
  33. BanditTech commented Aug 9, 2019
  34. Traymenu exe error h как исправить
  35. Вот так, вы сможете исправить ошибки, связанные с TrayMenu.exe
  36. Информация о файле TrayMenu.exe
  37. Комментарий пользователя
  38. Лучшие практики для исправления проблем с TrayMenu
  39. TrayMenu сканер
  40. четверг, 23 апреля 2015 г.
  41. TrayMenu.exe
  42. Описание угрозы
  43. Метод заражения EFax Tray Menu
  44. Скачать утилиту для удаления
  45. Функции
  46. Скачайте утилиту для удаления EFax Tray Menu от российской компании Security Stronghold
  47. Функции
  48. Наша служба поддержки готова решить вашу проблему с EFax Tray Menu и удалить EFax Tray Menu прямо сейчас!
  49. Как удалить EFax Tray Menu вручную

Последнее обновление: 06/30/2022 [Время на прочтение:

Разработка Media Player Codec Pack 4.4.8 компанией Media Player Codec Pack послужила толчком для создания последней версии файла TrayMenu.exe. Он также известен как файл Windows Executable (расширение EXE), который классифицируется как файл Win32 EXE (Исполняемое приложение).

Файл TrayMenu.exe изначально был выпущен с Media Player Codec Pack 4.4.8 03/20/2018 для ОС Windows 10. Согласно нашим сведениям, это основная и наиболее актуальная версия файла от компании Media Player Codec Pack.

В этой короткой статье приводятся подробные сведения о файле, шаги по устранению проблем EXE с TrayMenu.exe и список бесплатных загрузок для каждой версии, содержащейся в нашем полном каталоге файлов.

photo 3

Рекомендуемая загрузка: исправить ошибки реестра в WinThruster, связанные с TrayMenu.exe и (или) Media Player Codec Pack.

down arrow

ru

Совместимость с Windows 10, 8, 7, Vista, XP и 2000

Средняя оценка пользователей

Обзор файла

Общие сведения ✻
Имя файла: TrayMenu.exe
Расширение файла: расширение EXE
Тип объектного файла: Executable application
Тип файла: Исполняемое приложение
Описание: Windows Executable
Файловая операционная система: Win32
Тип MIME: application/octet-stream
Пользовательский рейтинг популярности:
Сведения о разработчике и ПО
Программа: Media Player Codec Pack 4.4.8
Разработчик: Media Player Codec Pack
Программное обеспечение: Media Player Codec Pack
Версия ПО: 4.4.8
Сведения о файле
Набор символов: Unicode
Код языка: English (U.S.)
Флаги файлов: (none)
Маска флагов файлов: 0x0017
Точка входа: 0x909c3
Размер кода: 644608
Информация о файле Описание
Размер файла: 873 kB
Дата и время изменения файла: 2019:10:11 14:23:46+00:00
Тип файла: Win32 EXE
Тип MIME: application/octet-stream
Тип компьютера: Intel 386 or later, and compatibles
Метка времени: 2016:08:02 10:48:45+00:00
Тип PE: PE32
Версия компоновщика: 10.0
Размер кода: 644608
Размер инициализированных данных: 237568
Размер неинициализированных данных:
Точка входа: 0x909c3
Версия ОС: 5.0
Версия образа: 0.0
Версия подсистемы: 5.0
Подсистема: Windows GUI
Номер версии файла: 1.1.24.1
Номер версии продукта: 1.1.24.1
Маска флагов файлов: 0x0017
Флаги файлов: (none)
Файловая ОС: Win32
Тип объектного файла: Executable application
Подтип файла:
Код языка: English (U.S.)
Набор символов: Unicode
Описание файла:
Версия файла: 1.1.24.01
Внутреннее имя:
Авторское право:
Название продукта:
Версия продукта: 1.1.24.01

✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.

Ошибки выполнения — это ошибки Media Player Codec Pack, возникающие во время «выполнения». Термин «выполнение» говорит сам за себя; имеется в виду, что данные ошибки EXE возникают в момент, когда происходит попытка загрузки файла TrayMenu.exe — либо при запуске приложения Media Player Codec Pack, либо, в некоторых случаях, во время его работы. Ошибки выполнения являются наиболее распространенной разновидностью ошибки EXE, которая встречается при использовании приложения Media Player Codec Pack.

В большинстве случаев ошибки выполнения TrayMenu.exe, возникающие во время работы программы, приводят к ненормальному завершению ее работы. Большинство сообщений об ошибках TrayMenu.exe означают, что либо приложению Media Player Codec Pack не удалось найти этот файл при запуске, либо файл поврежден, что приводит к преждевременному прерыванию процесса запуска. Как правило, Media Player Codec Pack не сможет запускаться без разрешения этих ошибок.

К числу наиболее распространенных ошибок TrayMenu.exe относятся:

Не удается запустить программу из-за отсутствия TrayMenu.exe на компьютере. Попробуйте переустановить программу, чтобы устранить эту проблему.

Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.

Поиск причины ошибки TrayMenu.exe является ключом к правильному разрешению таких ошибок. Несмотря на то что большинство этих ошибок EXE, влияющих на TrayMenu.exe, происходят во время запуска, иногда ошибка выполнения возникает при использовании Media Player Codec Pack 4.4.8. Причиной этого может быть недостаточное качество программного кода со стороны Media Player Codec Pack, конфликты с другими приложениями, сторонние плагины или поврежденное и устаревшее оборудование. Кроме того, эти типы ошибок TrayMenu.exe могут возникать в тех случаях, если файл был случайно перемещен, удален или поврежден вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.

Если вы столкнулись с одним из вышеуказанных сообщений об ошибке, выполните следующие действия по устранению неполадок, чтобы решить проблему TrayMenu.exe. Эти шаги по устранению неполадок перечислены в рекомендуемом порядке выполнения.

Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.

Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):

Если на этапе 1 не удается устранить ошибку TrayMenu.exe, перейдите к шагу 2 ниже.

troubleshoot

Шаг 2. Если вы недавно установили приложение Media Player Codec Pack (или схожее программное обеспечение), удалите его, затем попробуйте переустановить Media Player Codec Pack.

Чтобы удалить программное обеспечение Media Player Codec Pack, выполните следующие инструкции (Windows XP, Vista, 7, 8 и 10):

После полного удаления приложения следует перезагрузить ПК и заново установить Media Player Codec Pack.

Если на этапе 2 также не удается устранить ошибку TrayMenu.exe, перейдите к шагу 3 ниже.

1001 media player codec pack

Media Player Codec Pack 4.4.8

Media Player Codec Pack

Шаг 3. Выполните обновление Windows.

Когда первые два шага не устранили проблему, целесообразно запустить Центр обновления Windows. Во многих случаях возникновение сообщений об ошибках TrayMenu.exe может быть вызвано устаревшей операционной системой Windows. Чтобы запустить Центр обновления Windows, выполните следующие простые шаги:

Если Центр обновления Windows не смог устранить сообщение об ошибке TrayMenu.exe, перейдите к следующему шагу. Обратите внимание, что этот последний шаг рекомендуется только для продвинутых пользователей ПК.

Windows update

Если эти шаги не принесут результата: скачайте и замените файл TrayMenu.exe (внимание: для опытных пользователей)

Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows 10.

Источник

filecheck .ru

Вот так, вы сможете исправить ошибки, связанные с TrayMenu.exe

Важно: Некоторые вредоносные программы маскируют себя как TrayMenu.exe. Таким образом, вы должны проверить файл TrayMenu.exe на вашем ПК, чтобы убедиться, что это угроза. Мы рекомендуем Security Task Manager для проверки безопасности вашего компьютера.

Комментарий пользователя

Лучшие практики для исправления проблем с TrayMenu

Если у вас актуальные проблемы, попробуйте вспомнить, что вы делали в последнее время, или последнюю программу, которую вы устанавливали перед тем, как появилась впервые проблема. Используйте команду resmon, чтобы определить процесс, который вызывает проблемы. Даже если у вас серьезные проблемы с компьютером, прежде чем переустанавливать Windows, лучше попробуйте восстановить целостность установки ОС или для Windows 8 и более поздних версий Windows выполнить команду DISM.exe /Online /Cleanup-image /Restorehealth. Это позволит восстановить операционную систему без потери данных.

file

Security Task Manager показывает все запущенные сервисы Windows, включая внедренные скрытые приложения (например, мониторинг клавиатуры или браузера, авто вход). Уникальный рейтинг надежности указывает на вероятность того, что процесс потенциально может быть вредоносной программой-шпионом, кейлоггером или трояном.

Бесплатный aнтивирус находит и удаляет неактивные программы-шпионы, рекламу, трояны, кейлоггеры, вредоносные и следящие программы с вашего жесткого диска. Идеальное дополнение к Security Task Manager.

Reimage бесплатное сканирование, очистка, восстановление и оптимизация вашей системы.

Источник

В вашей системе запущено много процессов, которые потребляют ресурсы процессора и памяти. Некоторые из этих процессов, кажется, являются вредоносными файлами, атакующими ваш компьютер.
Чтобы исправить критические ошибки traymenu.exe,скачайте программу Asmwsoft PC Optimizer и установите ее на своем компьютере

1- Очистите мусорные файлы, чтобы исправить traymenu.exe, которое перестало работать из-за ошибки.

clean registry%20 %20full thumb

3- Настройка Windows для исправления критических ошибок traymenu.exe:

windows configuration thumb

Всего голосов ( 181 ), 115 говорят, что не будут удалять, а 66 говорят, что удалят его с компьютера.

Некоторые сообщения об ошибках, которые вы можете получить в связи с traymenu.exe файлом

(traymenu.exe) столкнулся с проблемой и должен быть закрыт. Просим прощения за неудобство.

(traymenu.exe) перестал работать.

traymenu.exe. Эта программа не отвечает.

(traymenu.exe) — Ошибка приложения: the instruction at 0xXXXXXX referenced memory error, the memory could not be read. Нажмитие OK, чтобы завершить программу.

(traymenu.exe) не является ошибкой действительного windows-приложения.

(traymenu.exe) отсутствует или не обнаружен.

Проверьте процессы, запущенные на вашем ПК, используя базу данных онлайн-безопасности. Можно использовать любой тип сканирования для проверки вашего ПК на вирусы, трояны, шпионские и другие вредоносные программы.

процессов:

Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Источник

[BUG] On Launch I get Error: «ERROR» is not a valid key name. #24

Describe the bug
Error on launch

Expected behavior
do something

To Reproduce
Simply launched PoE-Wingman.ahk

Screenshots
62599253 970cfe00 b8a0 11e9 84c6 95349dfc5daf

(please complete the following information):

Additional context
Add any other context about the problem here.

The text was updated successfully, but these errors were encountered:

I think your settings.ini could be missing those hotkey settings the script is demanding. We will need to stabilize this function so it can handle missing parameters.

If that doesnt work we’ll have to wait for bandit, since i am at work i cannot do anything on the code 🙁

rename settings.ini to anything (1.ini) then relaunch poe-wingman.ahk

rename settings.ini to anything (1.ini) then relaunch poe-wingman.ahk

Hi there, thank you for participating 🙂

BanditTech commented Aug 7, 2019

Yeah I just need to add in the defaults to the readFromFile() and we can skip the settings default creation completely. That way someone could delete any portion of the settings file and it will still load properly with default settings.

BanditTech commented Aug 8, 2019

this should be resolved, closing.

Main script stopped erroring but the GottaGoFast.ahk still erroring on hotkey line 207

62743339 eebd7d80 b9f6 11e9 9381 204fdaff4f47

BanditTech commented Aug 9, 2019

Ok this issue should be resolved, hopefully for the last time! XD

Источник

Подлинный файл является одним из компонентов программного обеспечения VLC, разработанного VideoLAN.

TrayMenu.exe — это исполняемый файл (программа) для Windows. Расширение имени файла .exe — это аббревиатура от англ. слова executable — исполнимый. Необходимо запускать исполняемые файлы от проверенных производителей программ, потому что исполняемые файлы могут потенциально изменить настройки компьютера или нанести вред вашему компьютеру. Бесплатный форум с информацией о файлах может помочь вам разобраться является ли TrayMenu.exe вирусом, трояном, программой-шпионом, рекламой, которую вы можете удалить, или файл принадлежит системе Windows или приложению, которому можно доверять.

Вот так, вы сможете исправить ошибки, связанные с TrayMenu.exe

Процесс Tray Menu принадлежит программе неизвестно от Cole Williams или Cole Williams Software.

Важно: Некоторые вредоносные программы маскируют себя как TrayMenu.exe. Таким образом, вы должны проверить файл TrayMenu.exe на вашем ПК, чтобы убедиться, что это угроза. Мы рекомендуем Security Task Manager для проверки безопасности вашего компьютера.

Комментарий пользователя

Лучшие практики для исправления проблем с TrayMenu

Аккуратный и опрятный компьютер — это главное требование для избежания проблем с TrayMenu. Для этого требуется регулярная проверка компьютера на вирусы, очистка жесткого диска, используя cleanmgr и sfc /scannow, удаление программ, которые больше не нужны, проверка программ, которые запускаются при старте Windows (используя msconfig) и активация Автоматическое обновление Windows. Всегда помните о создании периодических бэкапов, или в крайнем случае о создании точек восстановления.

Если у вас актуальные проблемы, попробуйте вспомнить, что вы делали в последнее время, или последнюю программу, которую вы устанавливали перед тем, как появилась впервые проблема. Используйте команду resmon, чтобы определить процесс, который вызывает проблемы. Даже если у вас серьезные проблемы с компьютером, прежде чем переустанавливать Windows, лучше попробуйте восстановить целостность установки ОС или для Windows 8 и более поздних версий Windows выполнить команду DISM.exe /Online /Cleanup-image /Restorehealth. Это позволит восстановить операционную систему без потери данных.

Следующие программы могут вам помочь для анализа процесса TrayMenu.exe на вашем компьютере: Security Task Manager отображает все запущенные задания Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записей автозагрузки. Уникальная оценка рисков безопасности указывает на вероятность процесса быть потенциально опасным — шпионской программой, вирусом или трояном. Malwarebytes Anti-Malware определяет и удаляет бездействующие программы-шпионы, рекламное ПО, трояны, кейлоггеры, вредоносные программы и трекеры с вашего жесткого диска.

file

Security Task Manager показывает все запущенные сервисы Windows, включая внедренные скрытые приложения (например, мониторинг клавиатуры или браузера, авто вход). Уникальный рейтинг надежности указывает на вероятность того, что процесс потенциально может быть вредоносной программой-шпионом, кейлоггером или трояном.

Бесплатный aнтивирус находит и удаляет неактивные программы-шпионы, рекламу, трояны, кейлоггеры, вредоносные и следящие программы с вашего жесткого диска. Идеальное дополнение к Security Task Manager.

Reimage бесплатное сканирование, очистка, восстановление и оптимизация вашей системы.

четверг, 23 апреля 2015 г.

Если при установке windows 7 codec pack ( windows.7.codec.pack.v4.1.1.setup.exe ) или перезагрузке вылезает подобная ошибка:

error: «h» is not a valid key name
line#
— 007 : hotkey? %mwt_Hotkey%? mwt_minimize
the kurrent thread will exit.

bulletЧто такое EFax Tray Menu

bulletСкачать утилиту для удаления EFax Tray Menu

bulletУдалить EFax Tray Menu вручную

bulletПолучить проффесиональную тех поддержку

bulletЧитать комментарии

danger medium

Описание угрозы

Имя исполняемого файла:

EFax Tray Menu

Badware

Win32 (Windows XP, Windows Vista, Windows Seven, Windows 8)

EFax Tray Menu копирует свои файл(ы) на ваш жёсткий диск. Типичное имя файла (*.*). Потом он создаёт ключ автозагрузки в реестре с именем EFax Tray Menu и значением (*.*). Вы также можете найти его в списке процессов с именем (*.*) или EFax Tray Menu.

Если у вас есть дополнительные вопросы касательно EFax Tray Menu, пожалуйста, заполните эту форму и мы вскоре свяжемся с вами.

Скачать утилиту для удаления

Скачайте эту программу и удалите EFax Tray Menu and (*.*) (закачка начнется автоматически):

* SpyHunter был разработан американской компанией EnigmaSoftware и способен удалить удалить EFax Tray Menu в автоматическом режиме. Программа тестировалась на Windows XP, Windows Vista, Windows 7 и Windows 8.

Функции

bulletУдаляет все файлы, созданные EFax Tray Menu.

bulletУдаляет все записи реестра, созданные EFax Tray Menu.

bulletПрограмма способна защищать файлы и настройки от вредоносного кода.

bulletПрограмма может исправить проблемы с браузером и защищает настройки браузера.

bulletУдаление гарантированно — если не справился SpyHunter предоставляется бесплатная поддержка.

bulletАнтивирусная поддержка в режиме 24/7 входит в комплект поставки.

Скачайте утилиту для удаления EFax Tray Menu от российской компании Security Stronghold

Если вы не уверены какие файлы удалять, используйте нашу программу Утилиту для удаления EFax Tray Menu.. Утилита для удаления EFax Tray Menu найдет и полностью удалит EFax Tray Menu и все проблемы связанные с вирусом EFax Tray Menu. Быстрая, легкая в использовании утилита для удаления EFax Tray Menu защитит ваш компьютер от угрозы EFax Tray Menu которая вредит вашему компьютеру и нарушает вашу частную жизнь. Утилита для удаления EFax Tray Menu сканирует ваши жесткие диски и реестр и удаляет любое проявление EFax Tray Menu. Обычное антивирусное ПО бессильно против вредоносных таких программ, как EFax Tray Menu. Скачать эту упрощенное средство удаления специально разработанное для решения проблем с EFax Tray Menu и (*.*) (закачка начнется автоматически):

Функции

bulletУдаляет все файлы, созданные EFax Tray Menu.

bulletУдаляет все записи реестра, созданные EFax Tray Menu.

bulletПрограмма может исправить проблемы с браузером.

bulletИммунизирует систему.

bulletУдаление гарантированно — если Утилита не справилась предоставляется бесплатная поддержка.

bulletАнтивирусная поддержка в режиме 24/7 через систему GoToAssist входит в комплект поставки.

Наша служба поддержки готова решить вашу проблему с EFax Tray Menu и удалить EFax Tray Menu прямо сейчас!

Оставьте подробное описание вашей проблемы с EFax Tray Menu в разделе Техническая поддержка. Наша служба поддержки свяжется с вами и предоставит вам пошаговое решение проблемы с EFax Tray Menu. Пожалуйста, опишите вашу проблему как можно точнее. Это поможет нам предоставит вам наиболее эффективный метод удаления EFax Tray Menu.

Эта проблема может быть решена вручную, путём удаления ключей реестра и файлов связанных с EFax Tray Menu, удалением его из списка автозагрузки и де-регистрацией всех связанных DLL файлов. Кроме того, отсутствующие DLL файлы должны быть восстановлены из дистрибутива ОС если они были повреждены EFax Tray Menu.

Чтобы избавиться от EFax Tray Menu, вам необходимо:

1. Завершить следующие процессы и удалить соответствующие файлы:

Предупреждение: вам необходимо удалить только файлы, контольные суммы которых, находятся в списке вредоносных. В вашей системе могут быть нужные файлы с такими же именами. Мы рекомендуем использовать Утилиту для удаления EFax Tray Menu для безопасного решения проблемы.

2. Удалите следующие папки:

3. Удалите следующие ключи иили значения ключей реестра:

Предупреждение: Если указаны значения ключей реестра, вы должны удалить только указанные значения и оставить сами ключи нетронутыми. Мы рекомендуем использовать Утилиту для удаления EFax Tray Menu для безопасного решения проблемы.

Как предотвратить заражение рекламным ПО? Мы рекомендуем использовать Adguard:

4. Сбросить настройки браузеров

EFax Tray Menu иногда может влиять на настройки вашего браузера, например подменять поиск и домашнюю страницу. Мы рекомендуем вам использовать бесплатную функцию «Сбросить настройки браузеров» в «Инструментах» в программе Spyhunter Remediation Tool для сброса настроек всех браузеров разом. Учтите, что перед этим вам надо удалить все файлы, папки и ключи реестра принадлежащие EFax Tray Menu. Для сброса настроек браузеров вручную используйте данную инструкцию:

Для Internet Explorer

Если вы используете Windows XP, кликните Пуск, и Открыть. Введите следующее в поле Открыть без кавычек и нажмите Enter: «inetcpl.cpl».

Если вы используете Windows 7 или Windows Vista, кликните Пуск. Введите следующее в поле Искать без кавычек и нажмите Enter: «inetcpl.cpl».

Выберите вкладку Дополнительно

Под Сброс параметров браузера Internet Explorer, кликните Сброс. И нажмите Сброс ещё раз в открывшемся окне.

Выберите галочку Удалить личные настройки для удаления истории, восстановления поиска и домашней страницы.

После того как Internet Explorer завершит сброс, кликните Закрыть в диалоговом окне.

Предупреждение: В случае если это не сработает используйте бесплатную опцию Сбросить настройки браузеров в Инструменты в программе Spyhunter Remediation Tool.

Найдите папку установки Google Chrome по адресу: C:Users»имя пользователя»AppDataLocalGoogleChromeApplicationUser Data.

В папке User Data, найдите файл Default и переименуйте его в DefaultBackup.

Запустите Google Chrome и будет создан новый файл Default.

Настройки Google Chrome сброшены

Предупреждение: В случае если это не сработает используйте бесплатную опцию Сбросить настройки браузеров в Инструменты в программе Spyhunter Remediation Tool.

Для Mozilla Firefox

В меню выберите Помощь > Информация для решения проблем.

Кликните кнопку Сбросить Firefox.

После того, как Firefox завершит, он покажет окно и создаст папку на рабочем столе. Нажмите Завершить.

Предупреждение: Так вы потеряте выши пароли! Рекомендуем использовать бесплатную опцию Сбросить настройки браузеров в Инструменты в программе Spyhunter Remediation Tool.

Источник

Теперь ясно. Действительно выяснилось что у этой клавиши 2 vk и sc кода, а также у NumpadClear и Tab 2 sc кода но vk коды одинаковые, других исключений не обнаружил.
Попробуйте это:


#NoEnv
#SingleInstance Force
OnExit("HotkeySet")
Menu, Tray, Click, 1
Menu, Tray, NoStandard
Menu, Tray, Add, Hide/Show, GuiClose
Menu, Tray, Add, ExitApp, ExitApp
Menu, Tray, Default, Hide/Show
Hotkey_IniPath(A_ScriptDir "Hotkey.ini"), Hotkey_IniSection("Hotkeys")
#IF !GuiShow
#IF

Gui, +AlwaysOnTop +HWNDhGui
Gui, Add, Edit, Center w300 r1 hwndhMyHotkey1, % Hotkey_Read("MyHotkey1")
Gui, Add, Edit, Center wp y+10 r1 hwndhMyHotkey2, % Hotkey_Read("MyHotkey2")
Gui, Add, Edit, Center wp y+10 r1 hwndhMyHotkey3, % Hotkey_Read("MyHotkey3")
Hotkey_Register(["MyHotkey1",hMyHotkey1,"KMLRJG1"], ["MyHotkey2",hMyHotkey2,"KMLRJG1"], ["MyHotkey3",hMyHotkey3,"KMLRJDG1"])



GuiClose:
	Gui, Show, % (GuiShow := !GuiShow) ? "" : "Hide"
	IF !GuiShow
		HotkeySet()
	Return
	
HotkeySet() {
	Static arr := []
	Hotkey, IF, !GuiShow
	Loop, 3
	{
		Hotkey, % arr[A_Index], Off, UseErrorLevel
		Hotkey_IniWrite("MyHotkey" A_Index)
		Hotkey, % arr[A_Index] := Hotkey_Value("MyHotkey" A_Index), % ("Action" A_Index), UseErrorLevel On
	}
	Hotkey, IF
}

ExitApp() {
    ExitApp
}

Action1:
	MsgBox, , , % A_ThisLabel "`n" A_ThisHotkey, 0.3
	Return

Action2:
	MsgBox, , , % A_ThisLabel "`n" A_ThisHotkey, 0.3
	Return

Action3:
	MsgBox, , , % A_ThisLabel "`n" A_ThisHotkey, 0.3
	Return


	;  Автор - serzh82saratov
	;  E-Mail: serzh82saratov@mail.ru
	;  Описание - http://forum.script-coding.com/viewtopic.php?id=8343

Hotkey_Register(Controls*) {
	Static IsStart
	Local k, v, g, g1
	For k, v in Controls
	{
		Hotkey_ID(v[2], v[1]), Hotkey_ID(v[1], v[2])
		Hotkey_Options(v[2], v[3] = "" ? "K" : v[3])
		Hotkey_Value(v[2], Hotkey_Value(v[1]))
		PostMessage, 0x00CF, 1, , , % "ahk_id" v[2]   ;  EM_SETREADONLY
		If RegExMatch(v[3], "i)G(d+)", g)
			Hotkey_Group("Set", v[1], g1)
	}
	If IsStart
		Return Hotkey_IsRegFocus()
	#HotkeyInterval 0
	OnMessage(0x203, "Hotkey_WM_LBUTTONDBLCLK")  ;	WM_LBUTTONDBLCLK
	Hotkey_SetWinEventHook(0x8005, 0x8005, 0, RegisterCallback("Hotkey_EventFocus", "F"), 0, 0, 0)   ;  EVENT_OBJECT_FOCUS := 0x8005
	Hotkey_InitHotkeys(), Hotkey_IsRegFocus(), IsStart := 1
}

Hotkey_Main(Param1, Param2 = "") {
	Static OnlyMods, ControlHandle, Hotkey, KeyName, K := {}
	, Prefix := {"LAlt":"<!","LCtrl":"<^","LShift":"<+","LWin":"<#"
				,"RAlt":">!","RCtrl":">^","RShift":">+","RWin":">#"
				,"Alt":"!","Ctrl":"^","Shift":"+","Win":"#"}
	, EngSym := {"sc2":"1","sc3":"2","sc4":"3","sc5":"4","sc6":"5","sc7":"6"
				,"sc8":"7","sc9":"8","scA":"9","scB":"0","scC":"-","scD":"="
				,"sc10":"Q","sc11":"W","sc12":"E","sc13":"R","sc14":"T","sc15":"Y"
				,"sc16":"U","sc17":"I","sc18":"O","sc19":"P","sc1A":"[","sc1B":"]"
				,"sc1E":"A","sc1F":"S","sc20":"D","sc21":"F","sc22":"G","sc23":"H"
				,"sc24":"J","sc25":"K","sc26":"L","sc27":"`;","sc28":"'","sc29":"``"
				,"sc2B":"","sc2C":"Z","sc2D":"X","sc2E":"C","sc2F":"V","sc30":"B"
				,"sc31":"N","sc32":"M","sc33":",","sc34":".","sc35":"/"}
	Local IsMod, Text

	If Param1 = GetMod
		Return K.MLCtrl K.MRCtrl K.MLAlt K.MRAlt K.MLShift K.MRShift K.MLWin K.MRWin K.MCtrl K.MAlt K.MShift K.MWin
	If Param2
	{
		K := {}
		If OnlyMods && !(OnlyMods := 0)
			SendMessage, 0xC, 0, "" Hotkey_Arr("Empty"), , ahk_id %ControlHandle%
		ControlHandle := Param2
		Hotkey_Arr("Hook", Hotkey_Options(ControlHandle))
		PostMessage, 0x00B1, -1, -1, , ahk_id %ControlHandle%   ;  EM_SETSEL
	}
	Else If Hotkey_Arr("Hook")
	{
		Hotkey_Arr("Hook", 0)
		If OnlyMods && !(OnlyMods := 0)
			SendMessage, 0xC, 0, "" Hotkey_Arr("Empty"), , ahk_id %ControlHandle%
		SetTimer, Hotkey_IsRegFocus, -200
	}
	Return

Hotkey_Mods:
	If InStr(Hotkey_Arr("Hook"), "S") || InStr(Hotkey_Arr("Hook"), "W")
		GoTo Hotkey_View
	IsMod := InStr(Hotkey_Arr("Hook"), "D") ? A_ThisHotkey : SubStr(A_ThisHotkey, 2)
	If (K["M" IsMod] != "")
		Return
	K["M" IsMod] := IsMod " + ", K["P" IsMod] := Prefix[IsMod]
	GoTo Hotkey_ViewMod

Hotkey_ModsUp:
	If InStr(Hotkey_Arr("Hook"), "S") || InStr(Hotkey_Arr("Hook"), "W")
		Return
	IsMod := InStr(Hotkey_Arr("Hook"), "D") ? SubStr(A_ThisHotkey, 1, -3) : SubStr(A_ThisHotkey, 2, -3)
	K["M" IsMod] := "", K["P" IsMod] := ""
	If (Hotkey != "")
		Return

Hotkey_ViewMod:
	Hotkey := "", OnlyMods := 1, Hotkey_Value(Hotkey_ID(ControlHandle), ""), Hotkey_Value(ControlHandle, "")
	K.Mods := K.MLCtrl K.MRCtrl K.MLAlt K.MRAlt K.MLShift K.MRShift K.MLWin K.MRWin K.MCtrl K.MAlt K.MShift K.MWin
	Text := K.Mods = "" ? Hotkey_Arr("Empty") : K.Mods
	SendMessage, 0xC, 0, &Text, , ahk_id %ControlHandle%
	Return

Hotkey_ViewNum:
	 If InStr(Hotkey_Arr("Hook"), "N")
		KeyName := Hotkey := GetKeyName(A_ThisHotkey)
	Else
		Hotkey := Format("sc{:x}", GetKeySC(A_ThisHotkey)), KeyName := GetKeyName(Hotkey)
	GoTo, Hotkey_Put

Hotkey_ViewSC:
	KeyName := Hotkey_Arr("OnlyEngSym") ? EngSym[A_ThisHotkey] : Format("{:U}", GetKeyName(A_ThisHotkey))
	Hotkey := A_ThisHotkey
	GoTo, Hotkey_Put

Hotkey_View:
	KeyName := Hotkey := A_ThisHotkey

Hotkey_Put:
	If InStr(Hotkey_Arr("Hook"), "W")
		GoTo Hotkey_Double
	OnlyMods := 0
	K.Prefix := K.PLCtrl K.PRCtrl K.PLAlt K.PRAlt K.PLShift K.PRShift K.PLWin K.PRWin K.PCtrl K.PAlt K.PShift K.PWin
	Hotkey_Value(Hotkey_ID(ControlHandle), K.Prefix Hotkey), Hotkey_Value(ControlHandle, K.Prefix Hotkey)
	K.Mods := K.MLCtrl K.MRCtrl K.MLAlt K.MRAlt K.MLShift K.MRShift K.MLWin K.MRWin K.MCtrl K.MAlt K.MShift K.MWin
	Text := K.Mods KeyName = "" ? Hotkey_Arr("Empty") : K.Mods KeyName
	SendMessage, 0xC, 0, &Text, , ahk_id %ControlHandle%
	
Hotkey_GroupCheck:
	If Hotkey_Group("Get", Hotkey_ID(ControlHandle)) && Hotkey_Group("SaveCheck", ControlHandle)
		SetTimer, Hotkey_Group, -70
	Return

Hotkey_Double:
	If !K.Double
	{
		Hotkey_Value(Hotkey_ID(ControlHandle), ""), Hotkey_Value(ControlHandle, "")
		K.DHotkey := Hotkey, K.DName := KeyName, K.Double := 1, OnlyMods := 1
		Text := KeyName " & "
		SendMessage, 0xC, 0, &Text, , ahk_id %ControlHandle%
		Return
	}
	If (K.DHotkey = Hotkey)
		Return
	Hotkey_Value(Hotkey_ID(ControlHandle), K.DHotkey " & " Hotkey), Hotkey_Value(ControlHandle, K.DHotkey " & " Hotkey)
	Text := K.DName " & " KeyName, K.Double := 0, OnlyMods := 0
	SendMessage, 0xC, 0, &Text, , ahk_id %ControlHandle%
	GoTo, Hotkey_GroupCheck

Hotkey_RButton:
	If Hotkey_Hook("L") && GetKeyState("LButton"`, "P")
		KeyName := Hotkey := "LButton"
	Else If Hotkey_Hook("R")
		KeyName := Hotkey := "RButton"
	Else
		Return
	GoTo, Hotkey_Put
}

Hotkey_InitHotkeys() {
	Local S_FormatInteger, S_BatchLines
	Static nmMods := "LAlt|RAlt|LCtrl|RCtrl|LShift|RShift|LWin|RWin"
	, nmMouse := "MButton|WheelDown|WheelUp|WheelRight|WheelLeft|XButton1|XButton2"
	, scSymb := "2|3|4|5|6|7|8|9|A|B|C|D|10|11|12|13|14|15|16|17|18|19|1A|1B|"
		. "1E|1F|20|21|22|23|24|25|26|27|28|29|2B|2C|2D|2E|2F|30|31|32|33|34|35|56"
	, scOther := "1|E|F|1C|37|39|3A|3B|3C|3D|3E|3F|40|41|42|43|44|45|46|4A|4E|54|57|58|63|64|65|"
		. "66|67|68|69|6A|6B|6C|6D|6E|76|7C|11C|135|145|147|148|149|14B|14D|14F|150|151|152|153|15D"
	, vkNum := "2E|6E|60|2D|61|23|62|28|63|22|64|25|65|C|66|27|67|24|68|26|69"	; , scNum := "53|52|4F|50|51|4B|4C|4D|47|48|49|59"
	, vkOther := "3|13|5F|A6|A7|A8|A9|AA|AB|AC|AD|AE|AF|B0|B1|B2|B3|B4|B5|B6|B7"
	S_BatchLines := A_BatchLines
	SetBatchLines, -1
	#IF Hotkey_IsRegControl()
	#IF Hotkey_Hook("K")
	#IF Hotkey_Hook("M")
	#IF Hotkey_Hook("L") && GetKeyState("RButton", "P")
	#IF Hotkey_Hook("R") || Hotkey_Hook("L")
	#IF Hotkey_Hook("J") && !Hotkey_Main("GetMod")
	#IF Hotkey_Arr("Hook") && !Hotkey_Hook("K")
	#IF
	Hotkey, IF, Hotkey_Hook("M")
	Loop, Parse, nmMouse, |
		Hotkey, % A_LoopField, Hotkey_View
	Hotkey, IF, Hotkey_Hook("K")
	Loop, Parse, nmMods, |
	{
		Hotkey, % A_LoopField, Hotkey_Mods
		Hotkey, % A_LoopField " Up", Hotkey_ModsUp
	}
	Loop, Parse, scSymb, |
		Hotkey, % "sc" A_LoopField, Hotkey_ViewSC
	Loop, Parse, scOther, |
		Hotkey, % GetKeyName("sc" A_LoopField), Hotkey_View
	Loop, Parse, vkNum, |
		Hotkey, % "vk" A_LoopField, Hotkey_ViewNum
	Loop, Parse, vkOther, |
		Hotkey, % GetKeyName("vk" A_LoopField), Hotkey_View
	Hotkey, IF, Hotkey_Hook("L") && GetKeyState("RButton"`, "P")
	Hotkey, LButton, Hotkey_Return
	Hotkey, IF, Hotkey_Hook("R") || Hotkey_Hook("L")
	Hotkey, RButton, Hotkey_Return
	Hotkey, RButton Up, Hotkey_RButton
	S_FormatInteger := A_FormatInteger
	SetFormat, IntegerFast, D
	Hotkey, IF, Hotkey_Hook("J") && !Hotkey_Main("GetMod")
	Loop, 128
		Hotkey % Ceil(A_Index / 32) "Joy" Mod(A_Index - 1, 32) + 1, Hotkey_View
	SetFormat, IntegerFast, %S_FormatInteger%
	Hotkey, IF, Hotkey_IsRegControl()
	Hotkey, RButton, Hotkey_RButtonBlock
	Hotkey, RButton Up, Hotkey_Return
	Hotkey, IF, Hotkey_Arr("Hook") && !Hotkey_Hook("K")
	Hotkey, AppsKey Up, Hotkey_Return
	Hotkey, +F10, Hotkey_Return
	Hotkey, IF
	SetBatchLines, %S_BatchLines%
	Return

	Hotkey_RButtonBlock:
		Click
	Hotkey_Return:
		Return
}

Hotkey_IsRegControl() {
	Local Control
	MouseGetPos,,,, Control, 2
	Return Hotkey_ID(Control) != ""
}

Hotkey_IsRegFocus() {
	Local ControlNN, hFocus
	ControlGetFocus, ControlNN, A
	ControlGet, hFocus, Hwnd, , %ControlNN%, A
	Hotkey_ID(hFocus) != "" ? Hotkey_Main("Control", hFocus) : 0
}

Hotkey_WM_LBUTTONDBLCLK(wp, lp, msg, hwnd) {
	If (Hotkey_ID(hwnd) = "")
		Return
	SendMessage, 0xC, 0, "" Hotkey_Arr("Empty"), , ahk_id %hwnd%
	Hotkey_Value(hwnd, ""), Hotkey_Value(Hotkey_ID(hwnd), "")
	Sleep 50
	PostMessage, 0x00B1, -1, -1, , ahk_id %hwnd%   ;  EM_SETSEL
}

Hotkey_EventFocus(hWinEventHook, event, hwnd) {
	Hotkey_ID(hwnd) != "" ? Hotkey_Main("Control", hwnd) : Hotkey_Main("Control")
}

Hotkey_SetWinEventHook(eventMin, eventMax, hmodWinEventProc, lpfnWinEventProc, idProcess, idThread, dwFlags) {
	Return DllCall("SetWinEventHook" , "UInt", eventMin, "UInt", eventMax, "Ptr", hmodWinEventProc
			, "Ptr", lpfnWinEventProc, "UInt", idProcess, "UInt", idThread, "UInt", dwFlags, "Ptr")
}

	; -------------------------------------- Save and get --------------------------------------

Hotkey_Arr(P*) {
	Static Arr := {"Empty":"Нет"}
	Return P.MaxIndex() = 1 ? Arr[P[1]] : (Arr[P[1]] := P[2])
}

Hotkey_ID(P*) {
	Static Arr := {}
	Return P.MaxIndex() = 1 ? Arr[P[1]] : P.MaxIndex() = 2 ? (Arr[P[1]] := P[2]) : Arr.Delete(P[1])
}

Hotkey_Value(P*) {
	Static Arr := {}
	Return P.MaxIndex() = 1 ? Arr[P[1]] : P.MaxIndex() = 2 ? (Arr[P[1]] := P[2]) : Arr.Delete(P[1])
}

Hotkey_Options(P*) {
	Static Arr := {}
	Return P.MaxIndex() = 1 ? Arr[P[1]] : P.MaxIndex() = 2 ? (Arr[P[1]] := P[2]) : Arr.Delete(P[1])
}

Hotkey_ChangeOption(ID, Option) {
	Local Hwnd, Name, g, g1
	(ID + 0 = "") ? (Hwnd := Hotkey_ID(ID), Name := ID) : (Hwnd := ID, Name := Hotkey_ID(ID))
	If RegExMatch(Hotkey_Options(Hwnd), "i)G(d+)", g)
		Hotkey_Group("Delete", Name)
	If RegExMatch(Option, "i)G(d+)", g)
		Hotkey_Group("Set", Name, g1)
	Return Hotkey_Options(Hwnd, Option)
}

Hotkey_Hook(Option) {
	Return Hotkey_Arr("Hook") && !!InStr(Hotkey_Arr("Hook"), Option)
}

Hotkey_Delete(ID, Destroy = 0) {
	Local Hwnd, Name, hFocus, ControlNN
	(ID + 0 = "") ? (Hwnd := Hotkey_ID(ID), Name := ID) : (Hwnd := ID, Name := Hotkey_ID(ID))
	Hotkey_Group("Delete", Name)
	Hotkey_ID(Hwnd, "", 1), Hotkey_ID(Name, "", 1)
	Hotkey_Value(Hwnd, "", 1), Hotkey_Value(Name, "", 1)
	Hotkey_Options(Hwnd, "", 1)
	ControlGetFocus, ControlNN, A
	ControlGet, hFocus, Hwnd, , %ControlNN%, A
	(hFocus = Hwnd ? Hotkey_Main("Control") : 0)
	If Destroy
		DllCall("DestroyWindow", "Ptr", Hwnd)
	Else
		PostMessage, 0x00CF, 0, , , % "ahk_id" Hwnd		;  EM_SETREADONLY
	Return Hwnd
}

Hotkey_Set(Name, Value = "") {
	Local Text
	Text := Hotkey_HKToStr(Value)
	SendMessage, 0xC, 0, &Text, , % "ahk_id" Hotkey_ID(Name)
	Return Text, Hotkey_Value(Name, Value), Hotkey_Value(Hotkey_ID(Name), Value)
}

Hotkey_Read(Name, Section = "", FilePath = "") {
	Local HK
	HK := Hotkey_IniRead(Name, Section, FilePath), Hotkey_Value(Name, HK)
	Return Hotkey_HKToStr(HK)
}

Hotkey_IniPath(Path = "") {
	Return Path = "" ? Hotkey_Arr("IniPath") : Hotkey_Arr("IniPath", Path)
}

Hotkey_IniSection(Section = "") {
	Return Section = "" ? Hotkey_Arr("IniSection") : Hotkey_Arr("IniSection", Section)
}

Hotkey_IniRead(Name, Section = "", FilePath = "") {
	Local Data
	IniRead, Data, % FilePath = "" ? Hotkey_IniPath() : FilePath, % Section = "" ? Hotkey_IniSection() : Section, % Name, % A_Space
	Return Data
}

Hotkey_IniWrite(ID, Section = "", FilePath = "") {
	Local Name
	Name := (ID + 0 = "") ? ID : Hotkey_ID(ID)
	If (Name != "")
		IniWrite, % Hotkey_Value(ID), % FilePath = "" ? Hotkey_IniPath() : FilePath, % Section = "" ? Hotkey_IniSection() : Section, % Name
}

	; -------------------------------------- Group --------------------------------------

Hotkey_Group(Key = "", p1 = "", p2 = "") {
	Local Name, Value, k, v, n, m, f, r
	Static NG := {}, GN := [], Blink := [], SaveCheck := [], i := 0
	If (Key = "") {
		For k, Name in SaveCheck {
			If ((Value := Hotkey_Value(Name)) != "") {
				(f := Hotkey_Arr("GroupEvents")) != "" && (r := {}, r.names := [])
				For m, n in GN[NG[Name]] {
					If (n != Name && Hotkey_Equal(Value, Hotkey_Value(n))) {
						Hotkey_Set(Name)
						(f != "") && (r.names.Push(n), r.this := Name, r.value := Value, r.group := NG[Name])
						If !DllCall("IsWindowVisible", "Ptr", Hotkey_ID(n))
							Continue
						DllCall("ShowWindowAsync", "Ptr", Hotkey_ID(n), "Int", 0)
						Blink[Hotkey_ID(n)] := 1, i := 3
						SetTimer, Hotkey_BlinkControl, -50
					}
				}
			}
			SaveCheck.Delete(k)
		}
		(f != "") && (r.this != "") && %f%(r)
	}
	Else If (Key = "Set")
		NG[p1] := p2, IsObject(GN[p2]) ? GN[p2].Push(p1) : GN[p2] := [p1]
	Else If (Key = "SaveCheck")
		Return 1, SaveCheck[p1] := Hotkey_ID(p1)
	Else If (Key = "Get")
		Return NG[p1] != ""
	Else If (Key = "CheckAll") {
		For k, v in GN
			For k, n in v
				If ((Value := Hotkey_Value(n)) != "")
					For k, m in v
						If (n != m && Hotkey_Equal(Value, Hotkey_Value(m)))
							Hotkey_Set(m)
	}
	Else If (Key = "Delete") {
		For k, v in GN[NG[p1]]
			If (v = p1) {
				GN[NG[p1]].RemoveAt(k)
				Break
			}
		NG.Delete(p1)
	}
	Return

	Hotkey_BlinkControl:
		For k in Blink
			DllCall("ShowWindowAsync", "Ptr", k, "Int", Mod(i, 2) ? 4 : 0)
		If (--i > 0) || !(Blink := [])
			SetTimer, Hotkey_BlinkControl, -50
		Return
}

Hotkey_Equal(HK1, HK2) {
	Local Bool
	If (HK2 = "")
		Return 0
	If (HK1 = HK2)
		Return 1
	If Hotkey_EqualDouble(HK1, HK2, Bool) || Hotkey_EqualDouble(HK2, HK1, Bool)
		Return Bool
	If !(HK1 ~= "S)[^+!#]") || !(HK2 ~= "S)[^+!#]")
		Return 0		
	If (HK1 ~= "S)[<>]") && (HK2 ~= "S)[<>]")
		Return 0
	Return (Hotkey_ModsSub(HK1) = Hotkey_ModsSub(HK2))
}

Hotkey_EqualDouble(HK1, HK2, ByRef Bool) {
	Static Prefix := {"LAlt":"<!","LCtrl":"<^","LShift":"<+","LWin":"<#"
					,"RAlt":">!","RCtrl":">^","RShift":">+","RWin":">#"}
	Local K, K1, K2
	If InStr(HK1, " & ") && !InStr(HK2, " & ") && (HK2 ~= "S)[^+!#]")
	&& (HK1 ~= "S)(L|R)(Ctrl|Alt|Shift|Win) & ") 
	&& !(HK1 ~= "S) & (L|R)(Ctrl|Alt|Shift|Win)")
	{
		RegExMatch(HK1, "S)^s*(.*?) & (.*?)s*$", K)
		K := Prefix[K1] . K2
		If (HK2 ~= "S)[<>]")
			Return 1, Bool := K = HK2
		Return 1, Bool := RegExReplace(K, "(<|>)") = HK2
	}
	Return 0
}

Hotkey_ModsSub(Value) {
	If !(Value ~= "[<>]")
		Return Value
	Value := StrReplace(Value, "<")
	Value := StrReplace(Value, ">")
	Value := StrReplace(Value, "^^", "^", , 1)
	Value := StrReplace(Value, "!!", "!", , 1)
	Value := StrReplace(Value, "++", "+", , 1)
	Return StrReplace(Value, "##", "#", , 1)
}

	; -------------------------------------- Format --------------------------------------

Hotkey_HKToStr(HK) {
	Static Prefix := {"^":"Ctrl","!":"Alt","+":"Shift","#":"Win","<":"L",">":"R"}
	, EngSym := {"sc2":"1","sc3":"2","sc4":"3","sc5":"4","sc6":"5","sc7":"6"
				,"sc8":"7","sc9":"8","scA":"9","scB":"0","scC":"-","scD":"="
				,"sc10":"Q","sc11":"W","sc12":"E","sc13":"R","sc14":"T","sc15":"Y"
				,"sc16":"U","sc17":"I","sc18":"O","sc19":"P","sc1A":"[","sc1B":"]"
				,"sc1E":"A","sc1F":"S","sc20":"D","sc21":"F","sc22":"G","sc23":"H"
				,"sc24":"J","sc25":"K","sc26":"L","sc27":"`;","sc28":"'","sc29":"``"
				,"sc2B":"","sc2C":"Z","sc2D":"X","sc2E":"C","sc2F":"V","sc30":"B"
				,"sc31":"N","sc32":"M","sc33":",","sc34":".","sc35":"/","sc56":""

				,"vk31":"1","vk32":"2","vk33":"3","vk34":"4","vk35":"5","vk36":"6"
				,"vk37":"7","vk38":"8","vk39":"9","vk30":"0","vkBD":"-","vkBB":"="
				,"vk51":"Q","vk57":"W","vk45":"E","vk52":"R","vk54":"T","vk59":"Y"
				,"vk55":"U","vk49":"I","vk4F":"O","vk50":"P","vkDB":"[","vkDD":"]"
				,"vk41":"A","vk53":"S","vk44":"D","vk46":"F","vk47":"G","vk48":"H"
				,"vk4A":"J","vk4B":"K","vk4C":"L","vkBA":"`;","vkDE":"'","vkC0":"``"
				,"vkDC":"","vk5A":"Z","vk58":"X","vk43":"C","vk56":"V","vk42":"B"
				,"vk4E":"N","vk4D":"M","vkBC":",","vkBE":".","vkBF":"/","vkE2":""}

	Local K, K1, K2, R, R1, R2, M, P := 1
	If InStr(HK, " & ")
	{
		RegExMatch(HK, "S)^s*(.*?) & (.*?)s*$", K)
		If K1 ~= "i)^(vk|sc[^r])"
			K1 := Hotkey_Arr("OnlyEngSym") && EngSym.HasKey(K1) ? EngSym[K1] : GetKeyName(K1)
		If K2 ~= "i)^(vk|sc[^r])"
			K2 := Hotkey_Arr("OnlyEngSym") && EngSym.HasKey(K2) ? EngSym[K2] : GetKeyName(K2)
		Return (StrLen(K1) = 1 ? Format("{:U}", K1) : K1) " & " (StrLen(K2) = 1 ? Format("{:U}", K2) : K2)
	}
	RegExMatch(HK, "S)^s*([~*$^+!#<>]*){?(.*?)}?s*$", K)
	If (K2 = "")
		Return "" Hotkey_Arr("Empty")
	If K2 ~= "i)^(vk|sc[^r])"
		K2 := Hotkey_Arr("OnlyEngSym") && EngSym.HasKey(K2) ? EngSym[K2] : GetKeyName(K2)
	While P := RegExMatch(K1, "S)([<>])*([^+!#])", R, P) + StrLen(R)
		M .= Prefix[R1] . Prefix[R2] . " + "
	Return M . (StrLen(K2) = 1 ? Format("{:U}", K2) : K2)
}

Hotkey_HKToSend(HK, Section = "", FilePath = "") {
	Static V := {"^":"Ctrl","!":"Alt","+":"Shift","#":"Win","<":"L",">":"R","":"L"}
	Local K, K1, K2, M1, M2, R, R1, R2, P := 1
	If (HK = "")
		Return
	If (Section != "")
		IniRead, HK, % FilePath = "" ? Hotkey_IniPath() : FilePath, % Section, % HK, % A_Space
	If InStr(HK, " & ") && (1, RegExMatch(HK, "S)^s*(.*?) & (.*?)s*$", K))
		Return "{" K1 " Down}{" K2 " Down}{" K1 " Up}{" K2 " Up}"
	RegExMatch(HK, "S)^s*([~*$^+!#<>]*){?(.*?)}?s*$", K)
	While P := RegExMatch(K1, "S)([<>])*([^+!#])", R, P) + StrLen(R)
		M1 .= "{" V[R1] V[R2] " Down}", M2 .= "{" V[R1] V[R2] " Up}"
	Return M1 . "{" K2 "}" . M2
}

I’ve been working on a new version of this program and I have come up across a problem.

I keep getting:

—————————
PrintSpooler.ahk
—————————
Error: «» is not a valid key name. The current thread will exit.

Line#
117: }
120: Gui,Submit
122: ready = true
124: mwt_MaxWindows = 50
126: mwt_StandardMenu = N
129: SetWinDelay,10
130: SetKeyDelay,0
—> 132: Hotkey,%guihide%,mwt_Minimize
133: Hotkey,%guishow%,mwt_UnMinimize
136: OnExit,mwt_RestoreAllThenExit
139: if mwt_StandardMenu = Y
140: Menu,Tray,Add
142: Else
143: {
144: Menu,Tray,NoStandard

—————————
OK
—————————

and I have no idea why. If someone could look over the code and tell me what’s wrong that’d be great.

#Persistent
#SingleInstance force
RegRead, saved, HKEY_LOCAL_MACHINE, SOFTWAREPrintSpooler, Saved

paused = false

Gui, Add, Tab, x-4 y5 w830 h450 , Main|Hide|Show

Gui, Tab, Main
Gui, Add, Text, x6 y35 w300 h50 +Center, This handy application hides the active window when you press the hotkey of your choice. You can unhide the window using the tray menu or with a hotkey.
if saved >= 2
{
Gui, Add, Text, x6 y145 w40 h20 , Saved:
Gui, Add, Text, x56 y145 w110 h20 , %saved%
}
Gui, Add, Button, x176 y145 w60 h20 , Email Me
Gui, Add, Button, x246 y145 w60 h20 ggo, OK


Gui, Tab, Hide
Gui, Add, Text, x6 y35 w300 h50 +Center, When you press the hotkey of your choice the program will do what is selected in "On Hotkey" and then hide (not minimize) the active window.
Gui, Add, GroupBox, x6 y95 w140 h70 , Hotkey
Gui, Add, Radio, x16 y115 w20 h20 vhradio checked,
Gui, Add, Radio, x16 y135 w20 h20 ,
Gui, Add, Hotkey, x36 y115 w100 h20 vhhotkey, !x
Gui, Add, DropDownList, x36 y135 w100 h20 r3 vhdropdown, Right Shift + /||Middle Click|Right + Left Click

Gui, Add, GroupBox, x156 y95 w150 h70 , On Hotkey
Gui, Add, CheckBox, x166 y115 w110 h20 vhspace, Send space
Gui, Add, Button, x276 y115 w20 h20 ghspaceinfo, i
Gui, Add, CheckBox, x166 y135 w110 h20 vhmute, Mute volume
Gui, Add, Button, x276 y135 w20 h20 ghmuteinfo, i

Gui, Tab, Show
Gui, Add, Text, x6 y35 w300 h50 +Center, When you press the hotkey of your choice the program will do what is selected in "On Hotkey" and then restore the last hidden window.
Gui, Add, GroupBox, x6 y95 w140 h70 , Hotkey
Gui, Add, Radio, x16 y115 w20 h20 vsradio checked,
Gui, Add, Radio, x16 y135 w20 h20 , 
Gui, Add, Hotkey, x36 y115 w100 h20 vshotkey, !c
Gui, Add, DropDownList, x36 y135 w100 h20 r3 vsdropdown, Right Shift + .||Ctrl + Middle Click|Right + Middle Click
Gui, Add, GroupBox, x156 y95 w150 h70 , On Hotkey
Gui, Add, CheckBox, x166 y115 w110 h20 vsspace, Send space
Gui, Add, Button, x276 y115 w20 h20 gsspaceinfo, i
Gui, Add, CheckBox, x166 y135 w110 h20 vsmute, UnMute volume
Gui, Add, Button, x276 y135 w20 h20 gsmuteinfo, i
Gui, Show, x527 y272 h178 w320, Print Spooler 9.11
Return

hspaceinfo:
Msgbox, The spacebar pauses many media applications, when you press your hide hotkey a space will be sent.
return

hmuteinfo:
Msgbox, When you press your hide hotkey your computer will be muted.
return

sspaceinfo:
Msgbox, The spacebar pauses many media applications, when you press your show hotkey a space will be sent.
return

smuteinfo:
Msgbox, When you press your show hotkey your computer will be unmuted.
return

GuiClose:
ExitApp
return

go:

if hradio = 1
{
	if (hhotkey == "")
	{
	MsgBox, Please choose a hide Hotkey.
	} else {
	guihide = %hhotkey%
	}
}
if hradio = 2 
{
	if hdropdown = Right Shift + /
	{
	guihide = >+/
	}
	if hdropdown = Middle Click
	{
	guihide = MButton
	}
	if hdropdown = Right + Left Click
	{
	guihide = ~RButton & ~LButton
	}
}

if sradio = 1
{
	if (shotkey == "")
	{
	MsgBox, Please choose a show Hotkey.
	} else {
	guihide = %shotkey%
	}
} else {
	if sdropdown = Right Shift + .
	{
	guishow = >+.
	}
	if sdropdown = Ctrl + Middle Click
	{
	guishow = ^MButton
	}
	if sdropdown = Right + Middle Click
	{
	guishow = ~RButton & ~MButton
	}
}


Gui, Submit

ready = true

mwt_MaxWindows = 50

mwt_StandardMenu = N

#HotkeyModifierTimeout 100
SetWinDelay 10
SetKeyDelay 0

Hotkey, %guihide%, mwt_Minimize
Hotkey, %guishow%, mwt_UnMinimize


OnExit, mwt_RestoreAllThenExit


if mwt_StandardMenu = Y 
	Menu, Tray, Add

else
{
	Menu, Tray, NoStandard
	Menu, Tray, Add, P&ause, Pause
	Menu, Tray, Add, E&xit, mwt_RestoreAllThenExit
	;Menu, Tray, Icon, %A_WinDir%SYSTEM32PRINTUI.DLL, 132, 1
	if A_IsCompiled = 1
	{
	Menu, Tray, Icon, %A_ScriptName%, , 1
	}
}
Menu, Tray, Add, &Show All Hidden Windows, mwt_RestoreAll
Menu, Tray, Add  
Menu, Tray, Tip, 1 document(s) pending for %A_UserName%

if a_AhkVersion = 
	mwt_MaxLength = 100
else
	mwt_MaxLength = 260  ; Reduce this to restrict the width of the menu.

return  ; End of auto-execute section.


mwt_Minimize:
if mwt_WindowCount >= %mwt_MaxWindows%
{
	MsgBox No more than %mwt_MaxWindows% may be hidden simultaneously.
	return
}

; Set the "last found window" to simplify and help performance.
; Since in certain cases it is possible for there to be no active window,
; a timeout has been added:
WinWait, A,, 2
if ErrorLevel <> 0  ; It timed out, so do nothing.
	return

; Otherwise, the "last found window" has been set and can now be used:
WinGet, mwt_ActiveID, ID
WinGetTitle, mwt_ActiveTitle
WinGetClass, mwt_ActiveClass
if mwt_ActiveClass in Shell_TrayWnd,Progman
{
	MsgBox, The desktop and taskbar cannot be hidden.
	return
}


if hspace = 1
{
Send, {Space}
}
if hmute = 1
{
SoundSet, 1, , mute
}

Send, !{esc}
WinHide
saved := ++saved

if mwt_ActiveTitle =
	mwt_ActiveTitle = ahk_class %mwt_ActiveClass%

StringLeft, mwt_ActiveTitle, mwt_ActiveTitle, %mwt_MaxLength%

Loop, %mwt_MaxWindows%
{
	if mwt_WindowTitle%a_index% = %mwt_ActiveTitle%
	{
		; Match found, so it's not unique.
		; First remove the 0x from the hex number to conserve menu space:
		StringTrimLeft, mwt_ActiveIDShort, mwt_ActiveID, 2
		StringLen, mwt_ActiveIDShortLength, mwt_ActiveIDShort
		StringLen, mwt_ActiveTitleLength, mwt_ActiveTitle
		mwt_ActiveTitleLength += %mwt_ActiveIDShortLength%
		mwt_ActiveTitleLength += 1 ; +1 the 1 space between title & ID.
		if mwt_ActiveTitleLength > %mwt_MaxLength%
		{
			; Since menu item names are limted in length, trim the title
			; down to allow just enough room for the Window's Short ID at
			; the end of its name:
			TrimCount = %mwt_ActiveTitleLength%
			TrimCount -= %mwt_MaxLength%
			StringTrimRight, mwt_ActiveTitle, mwt_ActiveTitle, %TrimCount%
		}
		; Build unique title:
		mwt_ActiveTitle = %mwt_ActiveTitle% %mwt_ActiveIDShort%
		break
	}
}

; First, ensure that this ID doesn't already exist in the list, which can
; happen if a particular window was externally unhidden (or its app unhid
; it) and now it's about to be re-hidden:
mwt_AlreadyExists = n
Loop, %mwt_MaxWindows%
{
	if mwt_WindowID%a_index% = %mwt_ActiveID%
	{
		mwt_AlreadyExists = y
		break
	}
}

; Add the item to the array and to the menu:
if mwt_AlreadyExists = n
{
	Menu, Tray, add, %mwt_ActiveTitle%, RestoreFromTrayMenu
	mwt_WindowCount += 1
	Loop, %mwt_MaxWindows%  ; Search for a free slot.
	{
		; It should always find a free slot if things are designed right.
		if mwt_WindowID%a_index% =  ; An empty slot was found.
		{
			mwt_WindowID%a_index% = %mwt_ActiveID%
			mwt_WindowTitle%a_index% = %mwt_ActiveTitle%
			break
		}
	}
}
return

Pause:
if paused = true
{
	Pause, Off
	Suspend, Off
	Menu, Tray, Uncheck, P&ause
	Send, !{esc}
	paused = false
} else {
	Suspend, On
	Menu, Tray, Check, P&ause
	paused = true
	Send, !{esc}
	Pause, On
}
return

RestoreFromTrayMenu:
Menu, Tray, delete, %A_ThisMenuItem%
; Find window based on its unique title stored as the menu item name:
Loop, %mwt_MaxWindows%
{
	if mwt_WindowTitle%a_index% = %A_ThisMenuItem%  ; Match found.
	{
		StringTrimRight, IDToRestore, mwt_WindowID%a_index%, 0
		WinShow, ahk_id %IDToRestore%
		WinActivate ahk_id %IDToRestore%  ; Sometimes needed.
		mwt_WindowID%a_index% =  ; Make it blank to free up a slot.
		mwt_WindowTitle%a_index% =
		mwt_WindowCount -= 1
		break
		if sspace = 1
		{
		Send, {Space}
		}
		if smute = 1
		{
		SoundSet, 0, , mute
		}
	}
}
return


;; This will pop the last minimized window off the stack and unhide it.
mwt_UnMinimize:
;; Make sure there's something to unhide.
if mwt_WindowCount > 0 
{
	;; Get the id of the last window minimized and unhide it
	StringTrimRight, IDToRestore, mwt_WindowID%mwt_WindowCount%, 0
	WinShow, ahk_id %IDToRestore%
	WinActivate ahk_id %IDToRestore%
	if sspace = 1
	{
	Send, {Space}
	}
	if smute = 1
	{
	SoundSet, 0, , mute
	}
	
	;; Get the menu name of the last window minimized and remove it
	StringTrimRight, MenuToRemove, mwt_WindowTitle%mwt_WindowCount%, 0
	Menu, Tray, delete, %MenuToRemove%
	
	;; clean up our 'arrays' and decrement the window count
	mwt_WindowID%mwt_WindowCount% =
	mwt_WindowTitle%mwt_WindowCount% = 
	mwt_WindowCount -= 1
}
return


mwt_RestoreAllThenExit:
Gosub, mwt_RestoreAll
RegWrite, REG_DWORD, HKEY_LOCAL_MACHINE, SOFTWAREPrintSpooler, Saved, %saved%
ExitApp  ; Do a true exit.


mwt_RestoreAll:
Loop, %mwt_MaxWindows%
{
	if mwt_WindowID%a_index% <>
	{
		StringTrimRight, IDToRestore, mwt_WindowID%a_index%, 0
		WinShow, ahk_id %IDToRestore%
		WinActivate ahk_id %IDToRestore%  ; Sometimes needed.
		if sspace = 1
		{
		Send, {Space}
		}
		if smute = 1
		{
		SoundSet, 0, , mute
		}
		; Do it this way vs. DeleteAll so that the sep. line and first
		; item are retained:
		StringTrimRight, MenuToRemove, mwt_WindowTitle%a_index%, 0
		Menu, Tray, delete, %MenuToRemove%
		mwt_WindowID%a_index% =  ; Make it blank to free up a slot.
		mwt_WindowTitle%a_index% =
		mwt_WindowCount -= 1
	}
	if mwt_WindowCount = 0
		break
}
return
return

I’m still figuring things out, and my code isn’t commented, neat, or optimised in any way. Bless those brave souls who click «Expand».

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка error flashing zip
  • Ошибка error fetching http headers