Автор Тема: Caps lock on/off (пиши всегда заглавными)  (Прочитано 854 раз)

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

Оффлайн vconstantine [?]

  • Новичок
  • *
  • Сообщений: 5
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Версия AutoIt: 3.3.14.2

Описание:
Добрый день. Для корректного использованния программы CDK Drive пользователь обязан вводить все данные заглавными буквами. Постоянно включать/выключать  CAPS Lock  или  нажимать Shirt работу не облегчает. (так же при нажатом Shift дополнительная клавитура с цифрами не работает) Нуждаюсь в помощи написания скприпта. Суть такая:
когда окно с CDK активно, Caps lock включается ( если же он уже включен, то ничего не происходит), когда же окно с CDK становится неактивно Caps lock выключается ( если же он был включен до этого, то ничего не происходит).  Существует ли возможность  использовать AutoIt для решения этой задачи или же есть другие альтернативы ?
Спасибо



Примечания:


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

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

Caps lock on/off (пиши всегда заглавными)
« Отправлен: Декабрь 11, 2017, 22:27:32 »

Оффлайн Tempo [?]

  • Скриптер
  • ****
  • Сообщений: 424
  • Репутация: 104
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Caps lock on/off (пиши всегда заглавными)
« Ответ #1, Отправлен: Декабрь 11, 2017, 22:46:10 »
Код: AutoIt [Выделить]
Opt("SendCapslockMode", 0)
Opt("WinTitleMatchMode", -2)
Opt("TrayAutoPause", 0)
HotKeySet("{ESC}", "_Exit")

While Sleep(10)
    If WinWaitActive("CDK Drive") Then
        Send("{CAPSLOCK ON}")
        If WinWaitNotActive("CDK Drive") Then Send("{CAPSLOCK OFF}")
    EndIf
WEnd

Func _Exit()
    Exit
EndFunc   ;==>_Exit
 


Оффлайн vconstantine [?]

  • Новичок
  • *
  • Сообщений: 5

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Caps lock on/off (пиши всегда заглавными)
« Ответ #2, Отправлен: Декабрь 11, 2017, 23:36:44 »
спасибо большое. все работает


Добавлено: Декабрь 11, 2017, 23:54:43
только один нюанс:в случает,  когда Caps lock изначально включен. При деактивизации окна CDK этот код его выключает.

что не всегда удобно если пользователь умышленно его включил до перехода в окно  CDK . пользователь иногда  может  использовать заглавные в более чем одной программе.   ( набирать заголовки в ворде например или еще где)

« Последнее редактирование: Декабрь 11, 2017, 23:54:43 от vconstantine, Причина: Объединение сообщений »

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

Re: Caps lock on/off (пиши всегда заглавными)
« Ответ #2 Отправлен: Декабрь 11, 2017, 23:36:44 »

Оффлайн Tempo [?]

  • Скриптер
  • ****
  • Сообщений: 424
  • Репутация: 104
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Caps lock on/off (пиши всегда заглавными)
« Ответ #3, Отправлен: Декабрь 12, 2017, 00:31:01 »
Код: AutoIt [Выделить]
#include <WinAPIvkeysConstants.au3>
#include <WinAPISys.au3>
Opt("SendCapslockMode", 0)
Opt("WinTitleMatchMode", -2)
Opt("TrayAutoPause", 0)
HotKeySet("{ESC}", "_Exit")
Global $sTitle = "CDK Drive", $iState

While Sleep(10)
    If WinWaitActive($sTitle) Then
        $iState = _WinAPI_GetKeyState($VK_CAPITAL)
        If Not $iState Then Send("{CAPSLOCK ON}")
        If WinWaitNotActive($sTitle) And Not $iState Then Send("{CAPSLOCK OFF}")
    EndIf
WEnd

Func _Exit()
    Exit
EndFunc   ;==>_Exit
 


Оффлайн vconstantine [?]

  • Новичок
  • *
  • Сообщений: 5

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Caps lock on/off (пиши всегда заглавными)
« Ответ #4, Отправлен: Декабрь 12, 2017, 01:01:18 »
спасибо большое. сегодня мой удачный день.
существует ли определенное  время действия этого скрипта? или он будет работать так долго, как долго будет запущен?

заметил интересную особенность:
если бысто переключать программы через alt+tab, то все работает, но вот если при нажатом ALT один раз нажать на TAB( что бы просмотреть список открытых окон) то  этот список тут же ищезает. нужно нажать на TAB дважды что-бы список остался на экране и активное окно переключилось на следующее

спасибо еще раз за код

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

Re: Caps lock on/off (пиши всегда заглавными)
« Ответ #4 Отправлен: Декабрь 12, 2017, 01:01:18 »

Оффлайн Tempo [?]

  • Скриптер
  • ****
  • Сообщений: 424
  • Репутация: 104
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Caps lock on/off (пиши всегда заглавными)
« Ответ #5, Отправлен: Декабрь 12, 2017, 01:07:57 »
vconstantine, он будет работать пока вы сами не закроете скрипт. Список окон это тоже окно и оно дезактивирует окно CDK в итоге эмулируется нажатие Caps Lock (для отключения), а при нажатии любой клавиши кроме Tab список окон исчезает



Добавлено: Декабрь 12, 2017, 01:36:53
Попробуйте так не должно сбрасывать спиосок окон
Код: AutoIt [Выделить]
#include <WinAPIvkeysConstants.au3>
#include <WinAPISys.au3>
Opt("SendCapslockMode", 0)
Opt("WinTitleMatchMode", -2)
Opt("TrayAutoPause", 0)
HotKeySet("{ESC}", "_Exit")
Global $sTitle = "CDK Drive", $iState

While Sleep(10)
    If WinWaitActive($sTitle) Then
        $iState = _WinAPI_GetKeyState($VK_CAPITAL)
        If Not $iState Then Send("{CAPSLOCK ON}")
        If WinWaitNotActive($sTitle) And Not $iState And WinWaitNotActive("[TITLE:;CLASS:#32771]") Then Send("{CAPSLOCK OFF}")
    EndIf
WEnd

Func _Exit()
    Exit
EndFunc   ;==>_Exit

« Последнее редактирование: Декабрь 12, 2017, 01:39:08 от Tempo »

Оффлайн vconstantine [?]

  • Новичок
  • *
  • Сообщений: 5

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Caps lock on/off (пиши всегда заглавными)
« Ответ #6, Отправлен: Март 07, 2019, 16:31:57 »
доброе время суток. спасибо большое за этот скрипт.  я его использую каждый день и он стал просто не заменим.

обсолютно недавно возникла нужда в добавлении еще одной функции в его содержимое. используемая программа не изменилась ( CDK).
пользователь выполняет такую последовательность операций.
в левом верхнем углу печатает номер начинающийся с Q. (  в скриншотах будет пример Number: Q16753)  напротив будет пустое окно (Invoices:)
после определенных манипуляций этот quote номер превращается в инвойс номер (Number: 1675775).
проблема заключается в том, что пользователь может  незаметить что этот quote уже превратили в invoice и превратить его еще раз.
желательный результат.
если в поле " Number:"  номер начинается с Q,  и в поле напротив "Invoices:" уже есть какой-то номер, то всплывает окно ошибки с сообщение вида ( дубликат инвойса).
если же в после  "Number:"  номер начинается с Q,  и в поле напротив "Invoices:" пусто, то никаких сообщений.

спасибо большое



vconstantine, он будет работать пока вы сами не закроете скрипт. Список окон это тоже окно и оно дезактивирует окно CDK в итоге эмулируется нажатие Caps Lock (для отключения), а при нажатии любой клавиши кроме Tab список окон исчезает



Добавлено: Декабрь 12, 2017, 01:36:53
Попробуйте так не должно сбрасывать спиосок окон
Код: AutoIt [Выделить]
#include <WinAPIvkeysConstants.au3>
#include <WinAPISys.au3>
Opt("SendCapslockMode", 0)
Opt("WinTitleMatchMode", -2)
Opt("TrayAutoPause", 0)
HotKeySet("{ESC}", "_Exit")
Global $sTitle = "CDK Drive", $iState

While Sleep(10)
    If WinWaitActive($sTitle) Then
        $iState = _WinAPI_GetKeyState($VK_CAPITAL)
        If Not $iState Then Send("{CAPSLOCK ON}")
        If WinWaitNotActive($sTitle) And Not $iState And WinWaitNotActive("[TITLE:;CLASS:#32771]") Then Send("{CAPSLOCK OFF}")
    EndIf
WEnd

Func _Exit()
    Exit
EndFunc   ;==>_Exit



Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

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

Re: Caps lock on/off (пиши всегда заглавными)
« Ответ #6 Отправлен: Март 07, 2019, 16:31:57 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
3382 Просмотров
Последний ответ Декабрь 13, 2009, 13:48:57
от Medic84
9 Ответов
13736 Просмотров
Последний ответ Март 26, 2010, 14:39:23
от Garrett
11 Ответов
6451 Просмотров
Последний ответ Октябрь 08, 2010, 02:32:51
от Garrett
4 Ответов
8524 Просмотров
Последний ответ Июнь 08, 2011, 11:13:39
от DIS
1 Ответов
2846 Просмотров
Последний ответ Июнь 25, 2011, 16:04:40
от Fever
4 Ответов
3672 Просмотров
Последний ответ Август 31, 2011, 20:41:52
от Zaramot
0 Ответов
1702 Просмотров
Последний ответ Август 23, 2012, 18:53:49
от aush
5 Ответов
3480 Просмотров
Последний ответ Декабрь 13, 2012, 07:37:14
от joiner
4 Ответов
3462 Просмотров
Последний ответ Март 13, 2013, 11:24:41
от ildar
2 Ответов
1502 Просмотров
Последний ответ Апрель 09, 2014, 08:02:50
от vaf