Что нового

iSwitcher - Переключение раскладок клавиатуры

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
AutoIt: 3.3.6.1
Версия: 1.0

Категория: GDI+ / Клавиатура

Описание: Очередное мое творение из серии "украшательств". iSwitcher - это замена стандартному "переключателю" раскладок клавиатуры в Windows, в сравнении с которой, программа имеет ряд дополнительных возможностей и улучшений: отображение флажков в системном трее вместо надписей "EN", "RU" и т.д. (список поддерживаемых языков см. на скриншоте, поддержка относится только к показу флажков), назначение практически любой горячей клавиши для переключения раскладок (пол умолчанию используется ALT+SPACEBAR), вывод всплывающих изображений, увеличенная реакция на нажатия горячей клавиши и др. iSwitcher не использует никаких Send... функций, все реализовано на WinAPI (вообще, библиотека WinAPIEx.au3 здесь является основополагающей). Если кто-то по каким-то причинам хочет пользоваться стандартными горячими клавишами Windows для переключения языка (по умолчанию ALT+SHIFT), то данная утилита прекрасно будет c ними работать. iSwitcher основан на том же "движке", что и программа iKey и будет идеальным дополнением к ней. Дабы не увеличивать размер файла и занемаемой им памяти, программа полностью лишена графического интерфейса (GUI). Основные настройки изменяются с помощью меню в системном трее, остальные - непосредственно в реестре (см. примечание). iSwitcher работает как в Windows XP, так и в Windows Vista/7 (насчет Windows 2000 не уверен).

Несмотря на то, что я писал эту программу только как "украшательство", в ходе тестирования (я пользуюсь ей уже неделю) выяснилось одно дополнительное качество - при использовании относительно больших мониторов, вероятность неправильного переключения раскладок снижается как минимум в два раза (часто ли мы смотрим в правый нижний угол для проверки текущего языка). Для тех, у кого установлено более двух раскладок, iSwitcher вообще будет архиполезной утилитой (я думаю).

Кстати, зацените использование ALT+SPACEBAR (по умолчанию) для переключения раскладок клавиатуры (аналогично Mac OS X), IMHO намного удобнее...

Файл: AU3, EXE

Используемые библиотеки: HotKey.au3, WinAPIEx.au3

Скриншот(ы):

iSwitcher_scr1.png
iSwitcher_scr2.png
iSwitcher_scr3.png

Источник: iSwitcher (оффициальный форум)
Автор: Yashied

Примечания:

  • Исходный код представлен для ознакомления. Т.к. программа использует дополнительные ресурсы, простой запуск скрипта (.au3) ничего не даст, сначала нужно скомпилировать его в исполняемый файл (.exe) при помощи compile.cmd, который, в свою очередь, испльзует необходимые утилиты. Дабы не раздувать размер файла, эти утилиты не включены в архив, скачать их нужно самостоятельно и положить в соответствующую папку.
  • Все настройки для iSwitcher находятся в реестре по адресу "HKEY_CURRENT_USER\Software\iSwitcher". Ниже представлено описание для всех настроек программы.

    ShowPopupImages = (0/1)
    Включает показ всплывающих изображений при переключении языка (только для дополнительных горячих клавиш, см. ниже).

    ShowTrayFlag = (0/1)
    Включает отображение флажков в системном трее. Если значение этого параметра равно 0, то в трее всегда будет отображаться иконка программы.

    XPos, YPos
    Устанавливает координаты на экране местоположения центра всплывающих изображений. По умолчанию, значения этих параметров равны (-1), всплывающие изображения располагаются по центру по горизонтали и на 1/3 ниже центра по вертикали.

    PopupTime = (500..5000)
    Задает время отображения всплывающих изображений в миллисекундах.

    FadeOut = (0..200)
    Задает скорость затухания всплывающих изображений. Чем больше значение этого параметра, тем медленнее происходит затухание и наоборот.

    UseHotKey = (0/1)
    Включает использование горячей клавиши для переключения языка.

    HotKey
    Задает шестнадцатиричный код горячей клавиши. Всплывающие изображения активируются только при нажатии на эту горячую клавишу. Чтобы узнать код необходимой горячей клавиши (комбинации клавиш), воспользуйтесь примером из HotKeyInput.au3 библиотеки. По умолчанию - 0x0420 (ALT+SPACEBAR).

    PopupInfo = (0/1/2/3)
    Определяет текст, который будет отображаться на всплывающих изображениях.

    0 - Название языка на английском ("English", "Russian" и т.д.).
    1 - Полное локализованное название языка ("English (United States)", "Russian (Russia)" и т.д.).
    2 - Сокращенное название языка ("ENU", "RUS" и т.д.).
    3 - Нативное название языка ("English", "Русский" и т.д.).

    TrayInfo = (0/1/2/3)
    Тоже самое, что и предыдущий параметр, но только для всплывающих подсказок в системном трее.

    ReduceMemory = (0/1)
    Включает режим освобождения неиспользуемой памяти после показа всплывающих подсказок. Заметно снижает объем используемый программой памяти, но может вызывать небольшую задержку перед появлением всплывающих подсказок на некоторых "слабых" компьютерах.

    TrayMenu = (0/1)
    Разрешает использование меню в системном трее. Если значение этого параметра равно 0, то меню будет недоступно.
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
Re: KSwitcher - Переключение раскладок клавиатуры

Yashied
Над окном FAR всплывает только English-сообщение, хотя раскладка переключается без проблем...
Я думаю, из-за консольности FAR...
Над другими окнами (неконсольными) сообщение исправно работает...


Добавлено:
Сообщение автоматически объединено:

Yashied
И еще пожелание... У меня на нетбуке нет индикаторов NumLock, CapsLock и ScrollLock...
Можно ли добавить всплывающее сообщение об этих индикаторах или значок в системный трей?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: KSwitcher - Переключение раскладок клавиатуры

Yashied
Поставил себе на ноутбук.
Первое впечатление - класс! :beer:
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: KSwitcher - Переключение раскладок клавиатуры

snoitaleR сказал(а):
Над окном FAR всплывает только English-сообщение, хотя раскладка переключается без проблем...

Да, для некоторых окон переключение может не работать, например еще для Windows Task Manager.

snoitaleR сказал(а):
И еще пожелание... У меня на нетбуке нет индикаторов NumLock, CapsLock и ScrollLock... Можно ли добавить всплывающее сообщение об этих индикаторах или значок в системный трей?

iKey
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: KSwitcher - Переключение раскладок клавиатуры

Yashied

Заметил интересное поведение KSwitcher`a!
Если активен FireFox и мы его сворачиваем, (рабочий стол становится активным) то KSwitcher замечательно выполняет свою функцию! Всё отлично переключается!
Но если допустим, мы работаем с MS Word, то, свернув его (рабочий стол становится активным) KSwitcher перестаёт переключать раскладку. Создаётся впечатление, что рабочей стол неактивен! Ситуация исправляется если кликнуть ЛКМ по рабочему столу.

OS: Windows XP SP2
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: KSwitcher - Переключение раскладок клавиатуры

Garrett сказал(а):
Если активен FireFox и мы его сворачиваем, (рабочий стол становится активным)...

Рабочий стол не становится активным. В этом легко убедиться, поменяв раскладку для рабочего стола, а затем проделать все вышеперечисленное. Получается, что при сворачивании последнего окна, рабочий стол не становится активным. Только после того, как по нему щелкнуть мышкой.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: KSwitcher - Переключение раскладок клавиатуры

Yashied
Но, если переключатся между FF и Word`ом, (между любыми двумя и более приложениями) то, сворачивание активного приложения, приводит к активации предыдущего. Разве рабочий стол не подчиняется тому же закону? Ведь, по сути, это тоже окно.
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: KSwitcher - Переключение раскладок клавиатуры

Garrett сказал(а):
Но, если переключатся между FF и Word`ом, (между любыми двумя и более приложениями) то, сворачивание активного приложения, приводит к активации предыдущего. Разве рабочий стол не подчиняется тому же закону? Ведь, по сути, это тоже окно.

При сворачивании или закрытии последнего видимого окна активируется трей. Вот такие вот дела. Поправил это для KSwitcher'а, скачай заново.



Добавлено:
Сообщение автоматически объединено:

Garrett, а вообще, если тебе понравилась эта программа, то я думаю будет еще интересна и iKey.

:whistle:
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: KSwitcher - Переключение раскладок клавиатуры

Yashied [?]
При сворачивании или закрытии последнего видимого окна активируется трей. Вот такие вот дела.
Понял!

Кстати, родной windows переключатель раскладки ведёт себя так же.
Так что извиняюсь, за ложную информацию.
Что интересно, раньше на это внимания не обращал! :(
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: KSwitcher - Переключение раскладок клавиатуры

Если щелкнуть по трею или таскбару, то язык уже не переключить. Что по alt+space, что по alt+shift. Причем по всей видимости с самим скриптом это не связано. Так как дефолтная виндовая переключалка ведет себя так же. Так, наблюдение


Добавлено:
Сообщение автоматически объединено:

И еще, может сделать переключение языка по щелчку по иконе в трее если языков два. ну или выводить список языков, как обычно если щелкнуть по значку языковой панели
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: KSwitcher - Переключение раскладок клавиатуры

Kaster сказал(а):
И еще, может сделать переключение языка по щелчку по иконе в трее если языков два.

Думал об этом, но тут есть проблема. Если кликнуть по иконке в трее, то теряется текущий фокус. Если переключать его обратно, то это будет выглядеть мягко говоря не очень.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: KSwitcher - Переключение раскладок клавиатуры

Yashied [?]
Если переключать его обратно, то это будет выглядеть мягко говоря не очень
Почему, например SwitchIt возвращает фокус, и ничего страшного не происходит, фокус плавно переходит на предыдущее приложение. Только сложность наверное будет в определение последнего окна, т.к после события клика по иконке в трее, любые операции с окнами приведут к "окну трея". Тут видимо придётся ставить хук, ну или просто запоминать последние два окна в цикле.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: KSwitcher - Переключение раскладок клавиатуры

обнаружил такой странный эффект. закономерность проявления не обнаружена (мной). после какого-то времени работы язык более не переключается по стандартному alt+shift и реагирует только на alt+space. с отключенным скриптом все нормально.
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: KSwitcher - Переключение раскладок клавиатуры

Kaster сказал(а):
обнаружил такой странный эффект. закономерность проявления не обнаружена (мной). после какого-то времени работы язык более не переключается по стандартному alt+shift и реагирует только на alt+space. с отключенным скриптом все нормально.

Это очень-очень странно, поскольку стандартный ALT+SHIFT программа не затрагивает не каким боком. Она просто мониторит язык, и как только он изменился, меняет флажок в трее. Это все.

Скажи, а язык при этом тоже не переключается, или это относится только к иконке?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: KSwitcher - Переключение раскладок клавиатуры

Yashied
наблюдается на двух машинах рабочем и домашнем.
не переключается язык по alt+shift. иконка соответственно тоже.
 
Автор
Yashied

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: KSwitcher - Переключение раскладок клавиатуры

К сожалению, тут нужно больше статистики, я пока не могу ответить на этот вопрос. У меня KSwitcher стоит на 5 компьютерах (Windows XP + Windows 7), и пока такой проблемы не возникало. Если что еще заметишь, пожалуйста отпишись.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: KSwitcher - Переключение раскладок клавиатуры

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

Yashied

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

:smile:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
OffTopic:
Yashied
Что за ребрендинг в разгар популярности ;D
 
Автор
Yashied

Yashied

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

:smile:
 
Верх