VBS раскладка клавиатуры

Обсуждение любых программ, не имеющих отношения к Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
_D_V_S_
Сообщения: 39
Зарегистрирован: Сб янв 31, 2009 22:49

Сообщение _D_V_S_ »

А после выполнения скрипта раскладка возвращается на прежнее место?
То есть: если до выполнения скрипта была русская например.
Выбираем ВордПад (смену на английскую) - и после закрытия вордпада она снова становится обратно русской?

Просто работает этот скрипт только с блокнотом и вордпадом.
А с теми программами, которые мне нужны - не хочет((
Одна русская раскладка в обоих.

Сижу голову ломаю - почему...

Да, моя прога запускается через "родительский", что-ли, экзешник (и он выводит консоль кстати): сначала он запускается, и после запускает второй - главный (этот - чистый Гуй...).

Да и вообще запускаться стал после того, как я закомментил:

Код: Выделить всё

Do : A = WSH.AppActivate(PID) : Loop Until A : WScript.Sleep 40 
Вообще - тёмный лес...

:cry:
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

_D_V_S_ писал(а):А с теми программами, которые мне нужны - не хочет((
Названия прог в студию.
_D_V_S_ писал(а):Да и вообще запускаться стал после того, как я закомментил:
Без этой стоки не будет ожидания появления окна, соответственно, клавиши нажмутся раньше времени, и язык ввода останется исходным.
Что покажет, если написать в этом месте WScript.Sleep 100 : MsgBox PID ?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
_D_V_S_
Сообщения: 39
Зарегистрирован: Сб янв 31, 2009 22:49

Сообщение _D_V_S_ »

Flasher писал(а):Названия прог в студию.
xvm-stat.exe - родительская консольная
WorldOfTanks.exe - главная
Flasher писал(а): Что покажет, если написать в этом месте WScript.Sleep 100 : MsgBox PID ?
Тоже самое.
Flasher писал(а): Без этой стоки не будет ожидания появления окна, соответственно, клавиши нажмутся раньше времени, и язык ввода останется исходным.
Вот это вообще для меня - загадка.
Почему так? Скрипт меняет язык только для той программы, которая в нём прописана?
А нельзя сменять язык раскладки для всей системы без ожидания окна программы? То есть сменить для всех окошек?
Как если просто в системе нажать Контрол+Шифт?
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

_D_V_S_,
Язык ввода по нажатию комбинации изменяется только для окна, имеющего фокус ввода. Если активен вордпад, изменится только для него, блокнот - только для блокнота, калькулятор - только для калькулятора. Не бывает такого, чтобы активного окна не было, винда вся на окнах, рабочий стол и панель задач - тоже окна, поэтому фраза "просто в системе нажать" некорректна в корне.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

_D_V_S_ писал(а):xvm-stat.exe - родительская консольная
WorldOfTanks.exe - главная
Мда.. Люди, о которых шла речь, - геймеры? Это они-то exe-шников боятся? :lol:
К сожалению, метод AppActivate не возвращает True c консольных окон.
Тут придётся пользоваться банальной задержкой.
А вот с танками я экспериментировать не имею желания. Полагаю, что поле ввода в его окне появляется ой как не сразу. Отсюда и проблемы. Вычислить, когда оно появится, с помощью стандартных методов не представляется возможным. Расчёт же данного скрипта идёт на окна, где фокус ввода возникает сразу или почти сразу при запуске окна приложения.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
_D_V_S_
Сообщения: 39
Зарегистрирован: Сб янв 31, 2009 22:49

Сообщение _D_V_S_ »

Flasher писал(а):Мда.. Люди, о которых шла речь, - геймеры? Это они-то exe-шников боятся? :lol:
Боятся пуще остальных :-)
Ибо вкладывают постоянно реальные деньги в игру, и трясутся кражи аккаунтов. В каждом экзешнике видят по меньшей мере трояна )))

Добавлено спустя 2 минуты:

Ну что-ж, если нет желания - то ничего не попишешь...

Всё равно огромное спасибо за уделённое мне время!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

_D_V_S_ писал(а):если нет желания - то ничего не попишешь
Установкой абы каких игр не балуюсь. В мои личные интересы (да и не только мои) подобные операции не входят по ряду "религиозных" причин. Мотивация хоть какая-то должна быть.
WSH для таких нужд не годится. Рекомендую пользоваться средствами для этого более подходящими (AHK, AutoIt), дать на них ссылки с офф. сайта людям, чтобы не пужались и почитали, что в этих exe-шниках нет ничего страшного. Задача на форумах с обсуждением этих языков решится куда быстрее. Мутить воду в ступе с чужой паранойей - недальновидное занятие. Не та это жертва, чтобы возыметь описанные удобства.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
DrShark
Сообщения: 911
Зарегистрирован: Сб окт 21, 2006 20:27
Откуда: Kyiv, Ukraine
Контактная информация:

Сообщение DrShark »

Flasher писал(а):как-то так
У меня просьба помочь с адаптацией скрипта под следующую задачу.
Нужна принудительная установка английской раскладки в командной строке TC, для дальнейшей вставки команд (напр. CD) с помощью SendKeys.
Попробовал приспособить скрипт для этой цели, сократив нижнюю часть скрипта (после Select Case Language ... End Select) так:

Код: Выделить всё

' Установка фокуса на TC cmdline:
  WSH.SendKeys "{Right}{Home}"
  ' Вычисляем требуемое кол-во нажатий хоткея переключения раскладки:
'  If RUS = 1 Then Count = 0 Else Count = Lang - 1
  If ENG = 1 Then Count = 0 Else Count = Lang - 1
  ' Нажимаем хоткей смены языка нужное число раз: 
  If Count Then : For n = 1 To Count : WSH.SendKeys HK : Next : End If
' Выгружаем скрипт: 
Set Dict = Nothing : Set WSH = Nothing : WScript.Quit
Но в таком виде скрипт не меняет раскладку, т.к. похоже не получает текущую раскладку окна TC.
Последний раз редактировалось DrShark Вс апр 30, 2017 21:46, всего редактировалось 1 раз.
"the light is coming to give back everything the darkness stole"
—©@AG4
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

DrShark писал(а):Нужна принудительная установка английской раскладки в командной строке TC
При обновлённой версии vbscript.dll (поставляемой с IE 11) она вроде бы всегда английская.
DrShark писал(а):для дальнейшей вставки команд (напр. CD) с помощью SendKeys.
Зачем? Чем cd из кнопки/юзеркоманды не устраивает?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
DrShark
Сообщения: 911
Зарегистрирован: Сб окт 21, 2006 20:27
Откуда: Kyiv, Ukraine
Контактная информация:

Сообщение DrShark »

Flasher писал(а):
DrShark писал(а):для дальнейшей вставки команд (напр. CD) с помощью SendKeys.
Зачем? Чем cd из кнопки/юзеркоманды не устраивает?
У каждого метода есть свои преимущества и недостактки, в том числе и у командой строки, которая активируется по клавише "Стрелка вправо" и имеет разные виды автодополнения. Кнопка вызова скрипта внизу вертикалной панели кнопок, который вставляет команду CD с последующим пробелом в начало ком. строки, для меня сделает этот инстумент комфортнее и эффективнее в использовании.
Flasher писал(а):При обновлённой версии vbscript.dll (поставляемой с IE 11) она вроде бы всегда английская.
У меня Vista с IE 9, и вообще хотелось бы иметь максимально универсальное и совместимое решение.
"the light is coming to give back everything the darkness stole"
—©@AG4
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

DrShark писал(а):которая активируется по клавише "Стрелка вправо"
Это только в режимах "Подробный" и "Комментарии", иначе по Shift + Влево/Вправо, если включён режим быстрого поиска без модификаторов, отключающий активацию комстроки при наборе текста. Поэтому универсальностью тут не пахнет.
DrShark писал(а):для меня сделает этот инстумент комфортнее и эффективнее в использовании.
В каком отношении? Набирать путь можно сразу в строке заголовка панели (2912/$B60/cm_EditPath), переходить к нужному объекту проще из меню избранных каталогов.
Если подразумевается Alt+F8, то мне не видится этот способ навигации более удобным.

Что касается более грамотного способа вставки, то советую сюда обратиться.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
DrShark
Сообщения: 911
Зарегистрирован: Сб окт 21, 2006 20:27
Откуда: Kyiv, Ukraine
Контактная информация:

Сообщение DrShark »

2Flasher
Я попросил помочь с адаптацией скрипта, а вы навязываете дискуссию об удобстве тех или иных инструментов TC. У каждого здесь личные предпочтения. Если нет желания адаптировать скрипт, напишите прямо, и на том спасибо.
"the light is coming to give back everything the darkness stole"
—©@AG4
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

DrShark
А VBScript в данном случае - это не инструмент ТС? Я всегда предлагаю тот инструмент, который с позиции моего опыта лучше для этого подходит. Если так сильно брезгуете 20 Кб-ой утилитой, то так и напишите.
А чтобы мне адаптировать данный скрипт (без подключения стороннего компонента) под все потенциальные системы, мне придётся проверить кучу комбинаций из версии ОС, библиотеки и интерпретатора, на что у меня сейчас нет ни ресурсов ни времени.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
DrShark
Сообщения: 911
Зарегистрирован: Сб окт 21, 2006 20:27
Откуда: Kyiv, Ukraine
Контактная информация:

Сообщение DrShark »

Flasher писал(а):А VBScript в данном случае - это не инструмент ТС?
Важно то, что это встроенный инструмент Windows.
Flasher писал(а):адаптировать данный скрипт ... у меня сейчас нет ни ресурсов ни времени.
OK. Если кратко, почему не работает моя адаптация кода? Чего не хватает? Дальше я сам.
"the light is coming to give back everything the darkness stole"
—©@AG4
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

DrShark писал(а):Важно то, что это встроенный инструмент Windows.
Не понимаю, что это меняет? ТС вообще пустой? Без плагинов, утилит и т.п.?
DrShark писал(а):OK. Если кратко, почему не работает моя адаптация кода?
Так ответ уже есть:
DrShark писал(а): похоже не получает текущую раскладку окна TC
Именно так и есть. А тут разбирался вариант смены языка ввода при первом обращении к окну приложения.
Название скрипта: "Запуск редакторов с переключением языка ввода на нужный".
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить