Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Симулируем нажатие клавиш на клавиатуре 4

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

 {With SendInput API}

 // Example: Send text 
procedure TForm1.Button1Click(Sender: TObject);
 const
    Str: string = 'writing writing writing';
 var
   Inp: TInput;
   I: Integer;
 begin
   Edit1.SetFocus;

   for I := 1 to Length(Str) do
   begin
     // press 
    Inp.Itype := INPUT_KEYBOARD;
     Inp.ki.wVk := Ord(UpCase(Str[i]));
     Inp.ki.dwFlags := 0;
     SendInput(1, Inp, SizeOf(Inp));

     // release 
    Inp.Itype := INPUT_KEYBOARD;
     Inp.ki.wVk := Ord(UpCase(Str[i]));
     Inp.ki.dwFlags := KEYEVENTF_KEYUP;
     SendInput(1, Inp, SizeOf(Inp));

     Application.ProcessMessages;
     Sleep(80);
   end;
 end;

 // Example: Simulate Alt+Tab 
procedure SendAltTab;
 var
   KeyInputs: array of TInput;
   KeyInputCount: Integer;

   procedure KeybdInput(VKey: Byte; Flags: DWORD);
   begin
     Inc(KeyInputCount);
     SetLength(KeyInputs, KeyInputCount);
     KeyInputs[KeyInputCount - 1].Itype := INPUT_KEYBOARD;
     with  KeyInputs[KeyInputCount - 1].ki do
     begin
       wVk := VKey;
       wScan := MapVirtualKey(wVk, 0);
       dwFlags := KEYEVENTF_EXTENDEDKEY;
       dwFlags := Flags or dwFlags;
       time := 0;
       dwExtraInfo := 0;
     end;
   end;
 begin
   KeybdInput(VK_MENU, 0);                // Alt 
  KeybdInput(VK_TAB, 0);                 // Tab 
  KeybdInput(VK_TAB, KEYEVENTF_KEYUP);   // Tab 
  KeybdInput(VK_MENU, KEYEVENTF_KEYUP); // Alt 
  SendInput(KeyInputCount, KeyInputs[0], SizeOf(KeyInputs[0]));
 end;
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay