powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Переключение раскладки клавиатура на английскую по умолчанию VBS
1 сообщений из 1, страница 1 из 1
Переключение раскладки клавиатура на английскую по умолчанию VBS
    #39042730
shade45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем, есть вот такой скрипт, он переключает клавиатуру на нужную раскладку и запускает приложение для выполнения SendKeys. Работает на блокноте. И есть скрипт для антивирусника, он тоже работает, но только если английская раскладка задана по умолчанию. Как бы их объединить?


' Запуск редакторов с переключением языка ввода на нужный

Set Dict = CreateObject("Scripting.Dictionary")
Dim WSH : Set WSH = CreateObject("WScript.Shell")

' Читаем значение ключа смены языка ввода:
Language = WSH.RegRead("HKCU\Keyboard Layout\Toggle\Hotkey")

' Проходимся по списку языков ввода, запоминая значения в коллекции:
On Error Resume Next
For i = 1 to 10
Key = WSH.RegRead("HKCU\Keyboard Layout\Preload\" & i)
If Err.Number > 0 Then Exit For
Dict.Add Key, i
Next : On Error GoTo 0

' Устанавливаем, под какими номерами идут требуемые языки:
ENG = Dict.Item("00000409") : RUS = Dict.Item("00000419")

' Устанавливаем вызываемую впоследствии комбинацию клавиш:
Select Case Language
Case 1 HK = "%+" : Case 2 HK = "^+" : Case 4 HK = "`"
End Select

' Настраиваем кнопки диалога сообщения:
Msg = MsgBox("Нажмите Да для перехода в блокнот," & vbnewLine & _
"Нет - для перехода в WordPad" & vbnewLine & "Отмена - для других действий", 4099)
If Msg = 6 Then
Run "notepad", RUS, HK
ElseIf Msg = 7 Then Run "%WinDir%\write.exe", ENG, HK
ElseIf Msg = 2 Then WScript.Echo "Другие действия!"
End If
' Выгружаем скрипт:
Set Dict = Nothing : Set WSH = Nothing : WScript.Quit

' Процедура вызова программ
Sub Run(Program, Lang, HKey)
' Вычисляем требуемое кол-во нажатий хоткея переключения раскладки:
If Lang = 1 Then Count = 0 Else Count = Lang - 1
' Запускаем редактор и активируем его окно:
Set ApExec = WSH.Exec(Program) : PID = ApExec.ProcessID
Do : A = WSH.AppActivate(PID) : Loop Until A : WScript.Sleep 40
' Нажимаем хоткей смены языка нужное число раз:
If Count Then : For n = 1 To Count : WSH.SendKeys HKey : Next : End If
End Sub




Скрипт для антивируса

' Open mcconsol
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Run """"&"%ProgramFiles%\McAfee\VirusScan Enterprise\mcconsol.exe"&"""", 1
' Give time to load НУЖНО ПЕРЕКЛЮЧИТь на англ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
WScript.Sleep 1000
'WshShell.Run """"&"%ProgramFiles%\McAfee\VirusScan Enterprise\mcconsol.exe"&"""",1
WScript.Sleep 500
' Type Stop McAfee
WshShell.SendKeys "%(D)"
WshShell.SendKeys "{DOWN 2}"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 500
WScript.Sleep 500
WshShell.SendKeys "(password)"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 500
WshShell.SendKeys "{DOWN}"
WshShell.SendKeys "{F4}"
WshShell.SendKeys "{DOWN 2}"
WshShell.SendKeys "{F4}"
WshShell.SendKeys "{UP 3}"
WshShell.SendKeys "{F4}"
WScript.Sleep 500
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Переключение раскладки клавиатура на английскую по умолчанию VBS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]