| View previous topic :: View next topic   | 
	
	
	
		| Author | 
		Message | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Tue Apr 09, 2013 19:04    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				_D_V_S_
 
Мы уже это обсудили. Всё утыкается в три и более языка ввода. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		MVV
 
  
  Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
  | 
		
			
				  (Separately) Posted: Tue Apr 09, 2013 19:18    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				_D_V_S_,
 
Я же говорил, так нельзя. Но можно посмотреть в реестре, какая комбинация выбрана, и послать её. Здесь есть проблема, о которой написал Flasher - если языков ввода более 1.
 
 
Flasher,
 
Кстати, проблема решаема. В упомянутом мной ключе реестра указан порядок переключения раскладок (значение с именем 1 - раскладка по умолчанию, с именем 2 - следующая за ней, и т.д.). Можно найти номер нужной из них и послать комбинацию для переключения нужное число раз. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
 
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Tue Apr 09, 2013 19:32    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				MVV
 
Да, так можно, только немоментальная скорость будет. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Wed Apr 10, 2013 09:02    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				_D_V_S_, как-то так:
 
 	  | Code: | 	 		  ' Запуск редакторов с переключением языка ввода на нужный
 
 
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  | 	 
  _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
  Last edited by Flasher on Wed Apr 10, 2013 10:21; edited 1 time in total | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		_D_V_S_
 
  
  Joined: 31 Jan 2009 Posts: 39
 
  | 
		
			
				  (Separately) Posted: Wed Apr 10, 2013 09:23    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Flasher wrote: | 	 		  _D_V_S_, как-то так:
 
 | 	  
 
Спасибо!
 
 
Запустил попробовать.
 
 
программа1 = блокнот
 
программа2 = вордпад
 
Так?
 
 
На обоих русский язык....
 
 
А мне надо, чтобы на программа1 был русский, а на программа2 - английский. Автоматом выставлялся...
 
В этом и смысл VBS - одна программа требует ввода текста на русском языке, вторая - на английском. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Wed Apr 10, 2013 09:45    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				_D_V_S_
 
Пардон, не тот символ поставил. Сейчас как надо. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		_D_V_S_
 
  
  Joined: 31 Jan 2009 Posts: 39
 
  | 
		
			
				  (Separately) Posted: Wed Apr 10, 2013 10:51    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Flasher wrote: | 	 		  _D_V_S_
 
Пардон, не тот символ поставил. Сейчас как надо. | 	  
 
К сожалению - в обоих случаях опять русский.
 
 
Мало того, процессы wscript.exe остаются висеть после закрытия блокнота и вордпада и почему-то очень сильно подтормаживают систему. Пришлось убивать их руками.
 
 
Я как делаю:
 
1) Запускаю Ваш VBS и выбираю ДА. Открывается блокнот. Печатаю. Русская раскладка. Альт+F4 на блокноте.
 
2) Запускаю Ваш VBS и выбираю НЕТ. Открывается вордпад. Печатаю. Русская раскладка. Альт+F4 на вордпаде.
 
 
И после нескольких таких запусков - система дико тормозит - потому что процессы wscript.exe не завершаются и мало того - начинаются дикие тормоза из-за них. Пока их руками не убьёшь... | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Wed Apr 10, 2013 15:43    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				_D_V_S_
 
Причины точной пока понять не могу. На XP всё работает как надо. На 7-ке процесс wscript действительно висит, но переключение происходит на нужный язык ввода. Проблема в 4 строке снизу. Вечером посмотрю. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		_D_V_S_
 
  
  Joined: 31 Jan 2009 Posts: 39
 
  | 
		
			
				  (Separately) Posted: Wed Apr 10, 2013 16:02    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Flasher wrote: | 	 		  _D_V_S_
 
переключение происходит на нужный язык ввода.  | 	  
 
У меня не происходит почему-то...
 
Панто-Свитчер может быть камнем преткновения?
 
Пробовал и без него (закрывал его) - всё одно только русский включается...
 
Да, у меня на Контрол+Шифт переключение языка. Может в этом дело?
 
 
ЗЫ Win7x64 | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Wed Apr 10, 2013 16:32    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | _D_V_S_ wrote: | 	 		  | Панто-Свитчер может быть камнем преткновения?  | 	  Он может сыграть роль только при наборе текста, первые символы всё равно должны соответствовать требованиям.
 
 	  | _D_V_S_ wrote: | 	 		  | Может в этом дело? | 	  Так всё предусмотрено. И кол-во языков и клавиши. Я для чего комментарии-то в скрипте написал? К тому же я тестировал с установкой всех возможных комбинаций.
 
 
У кого ещё x64, протестируйте, пож-та! _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		LonerD
 
  
  Joined: 04 Jan 2011 Posts: 1172 Location: Макеевка
  | 
		
			
				  (Separately) Posted: Wed Apr 10, 2013 18:56    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Quote: | 	 		  | У кого ещё x64, протестируйте, пож-та! | 	  
 
Работает, но не переключение на определённый язык, а просто циклическое переключение раскладок при вызове блокнота.
 
У меня Win8x64, раскладки En-Ru-Uk.
 
При запуске блокнота - раскладка переключается на следующую, при запуске WordPadа - остаётся текущей. Например, если раскладка выставленная русская, то после запуска блокнота переключается на украинскую, после запуска ворда - так и остаётся русской.
 
После запуска WordPadа - wscript висит в памяти и действительно нехило нагружает процессор фактически на 100% _________________ Windows 11 | TC DreamLair eternal pre-α | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		MVV
 
  
  Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
  | 
		
			
				  (Separately) Posted: Wed Apr 10, 2013 19:33    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				LonerD,
 
Я писал выше, что способ применим вплоть до Win7 включительно, т.к. в Win8 новое приложение имеет не язык ввода по умолчанию, а язык ввода, выбранный в родительском приложении. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
 
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Wed Apr 10, 2013 20:15    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | LonerD wrote: | 	 		  | После запуска WordPadа - wscript висит в памяти и действительно нехило нагружает процессор фактически на 100% | 	  Ясно. Значит, в нём дело. Собственно, запрос конкретно на него не был, так что не так страшно. Пишите путь к нужному редактору.
 
 
 	  | MVV wrote: | 	 		  | а язык ввода, выбранный в родительском приложении | 	  А где он там выбирается? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		MVV
 
  
  Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
  | 
		
			
				  (Separately) Posted: Wed Apr 10, 2013 21:38    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Flasher,
 
Ну, например, язык ввода по умолчанию у тебя английский, ты запустил тотал и переключился в нём на русский. Теперь у программ, запускаемых из тотала (командная строка, например), начальный язык ввода будет русский. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
 
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Flasher
 
  
  Joined: 06 Nov 2009 Posts: 14229 Location: Москва
  | 
		
			
				  (Separately) Posted: Wed Apr 10, 2013 23:36    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				MVV
 
Понял, тут только ActivateKeyboardLayout..
 
 
_D_V_S_, LonerD
 
Кстати, если поменять "%WinDir%\write.exe" на
 
"%PROGRAMFILES%\Windows NT\Accessories\wordpad.exe", то WScript висеть не будет. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		 |