Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  348

•  TDictionary Custom Sort  3 492

•  Fast Watermark Sources  3 237

•  3D Designer  5 003

•  Sik Screen Capture  3 491

•  Patch Maker  3 696

•  Айболит (remote control)  3 896

•  ListBox Drag & Drop  3 162

•  Доска для игры Реверси  82 867

•  Графические эффекты  4 097

•  Рисование по маске  3 390

•  Перетаскивание изображений  2 764

•  Canvas Drawing  2 914

•  Рисование Луны  2 720

•  Поворот изображения  2 334

•  Рисование стержней  2 225

•  Paint on Shape  1 626

•  Генератор кроссвордов  2 307

•  Головоломка Paletto  1 823

•  Теорема Монжа об окружностях  2 327

•  Пазл Numbrix  1 718

•  Заборы и коммивояжеры  2 093

•  Игра HIP  1 315

•  Игра Go (Го)  1 262

•  Симулятор лифта  1 509

•  Программа укладки плитки  1 258

•  Генератор лабиринта  1 582

•  Проверка числового ввода  1 401

•  HEX View  1 535

•  Физический маятник  1 387

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Симулируем нажатие клавиш на клавиатуре



Оформил: DeeCo

{PostKeyEx32 function}

 procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean);
 {************************************************************ 
* Procedure PostKeyEx32 
* 
* Parameters: 
*  key    : virtual keycode of the key to send. For printable 
*           keys this is simply the ANSI code (Ord(character)). 
*  shift  : state of the modifier keys. This is a set, so you 
*           can set several of these keys (shift, control, alt, 
*           mouse buttons) in tandem. The TShiftState type is 
*           declared in the Classes Unit. 
*  specialkey: normally this should be False. Set it to True to 
*           specify a key on the numeric keypad, for example. 
* Description: 
*  Uses keybd_event to manufacture a series of key events matching 
*  the passed parameters. The events go to the control with focus. 
*  Note that for characters key is always the upper-case version of 
*  the character. Sending without any modifier keys will result in 
*  a lower-case character, sending it with [ssShift] will result 
*  in an upper-case character! 
// Code by P. Below 
************************************************************}
 type
   TShiftKeyInfo = record
     shift: Byte;
     vkey: Byte;
   end;
   byteset = set of 0..7;
 const
   shiftkeys: array [1..3] of TShiftKeyInfo =
     ((shift: Ord(ssCtrl); vkey: VK_CONTROL),
     (shift: Ord(ssShift); vkey: VK_SHIFT),
     (shift: Ord(ssAlt); vkey: VK_MENU));
 var
   flag: DWORD;
   bShift: ByteSet absolute shift;
   i: Integer;
 begin
   for i := 1 to 3 do
   begin
     if shiftkeys[i].shift in bShift then
       keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0), 0, 0);
   end; { For }
   if specialkey then
     flag := KEYEVENTF_EXTENDEDKEY
   else
     flag := 0;

   keybd_event(key, MapvirtualKey(key, 0), flag, 0);
   flag := flag or KEYEVENTF_KEYUP;
   keybd_event(key, MapvirtualKey(key, 0), flag, 0);

   for i := 3 downto 1 do
   begin
     if shiftkeys[i].shift in bShift then
       keybd_event(shiftkeys[i].vkey, MapVirtualKey(shiftkeys[i].vkey, 0),
         KEYEVENTF_KEYUP, 0);
   end; { For }
 end; { PostKeyEx32 }


 // Example: 

procedure TForm1.Button1Click(Sender: TObject);
 begin
   //Pressing the Left Windows Key 
  PostKeyEx32(VK_LWIN, [], False);

   //Pressing the letter D 
  PostKeyEx32(Ord('D'), [], False);

   //Pressing Ctrl-Alt-C 
  PostKeyEx32(Ord('C'), [ssctrl, ssAlt], False);
 end;








Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте