Como mudar o mudar de teclado no Windows a tecla Shift individualmente?

Diga-me o programa-o interruptor do teclado para Windows 7/XP, que pode ser configurado da seguinte forma:

  1. Shift esquerdo — teclado inglês.
  2. Shift direito — teclado russo.

Punto Switcher não oferecer. Agora uso o SwitchIt, mas ele é velho e não funciona em qualquer lugar.


Answers 4:

Share:


Jack Fenkhuber
Answer 1

procedure TForm1.Timer1Timer(Sender: TObject);
var
  ThreadId, InputLocaleId: THandle;
const
  English = $4090409;
  Russian = $4190419;
begin
  ThreadId := GetWindowThreadProcessId(GetForegroundWindow());
  InputLocaleId := GetKeyboardLayout(ThreadId);

  if Odd(GetAsyncKeyState(VK_LSHIFT)) then begin
    if InputLocaleId <> English then
      PostMessage(GetForegroundWindow(), WM_INPUTLANGCHANGEREQUEST, English, 0);
  end else if Odd(GetAsyncKeyState(VK_RSHIFT)) then begin
    if InputLocaleId <> Russian then
      PostMessage(GetForegroundWindow(), WM_INPUTLANGCHANGEREQUEST, Russian, 0);
  end;
end;


Потестил, funciona e com janelas padrão e com a consola.
Posso adicionar "na bandeja do sistema" e откомпилить.

P. S. você Pode globais хуками através de uma DLL, mas não é claramente 40 minutos.


PRADEEP KUMAR PADHY
Answer 2

E eu stream oferecer Punto Switcher.


Alice Heffernan
Answer 3

A primeira coisa que me veio à mente escrever, não deve demorar mais de 40 minutos.


Himanshu Patel
Answer 4

Existe um script para o AutoHotKey, mas lá de comutação à direita Ctrl'você, assim que você vai precisar acabado.