Имитация ввода с клавиатуры для консоли
Материал из DRKB
Имитация ввода с клавиатуры для консоли[править | править код]
const
ExtendedKeys: set of Byte = [ // incomplete list
VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT,
VK_LEFT, VK_UP, VK_RIGHT, VK_DOWN, VK_NUMLOCK
];
procedure SimulateKeyDown(Key: Byte);
var
flags: DWORD;
begin
if Key in ExtendedKeys then
flags := KEYEVENTF_EXTENDEDKEY
else
flags := 0;
keybd_event(Key, MapVirtualKey(Key, 0), flags, 0);
end;
procedure SimulateKeyUp(Key: Byte);
var
flags: DWORD;
begin
if Key in ExtendedKeys then
flags := KEYEVENTF_EXTENDEDKEY
else
flags := 0;
keybd_event(Key, MapVirtualKey(Key, 0), KEYEVENTF_KEYUP or flags, 0);
end;
procedure SimulateKeystroke(Key: Byte);
var
flags: DWORD;
scancode: BYTE;
begin
if Key in ExtendedKeys then
flags := KEYEVENTF_EXTENDEDKEY
else
flags := 0;
scancode := MapVirtualKey(Key, 0);
keybd_event(Key, scancode, flags, 0);
keybd_event(Key, scancode, KEYEVENTF_KEYUP or flags, 0);
end;
Author: Nomadic
Source: http://delphiworld.narod.ru/
ID: 02201