Hi,
Tastenklicks kannst du übrigens so simulieren:
Delphi-Quellcode:
procedure PostKeyEx32(key: Word;
const shift: TShiftState; specialkey: Boolean) ;
{
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.
}
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;
j: Integer;
begin
for j := 1
to 3
do
begin
if shiftkeys[j].shift
in bShift
then
keybd_event(shiftkeys[j].vkey, MapVirtualKey(shiftkeys[j].vkey, 0), 0, 0) ;
end;
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 j := 3
downto 1
do
begin
if shiftkeys[j].shift
in bShift
then
keybd_event(shiftkeys[j].vkey, MapVirtualKey(shiftkeys[j].vkey, 0), KEYEVENTF_KEYUP, 0) ;
end;
end;
Wenn du damit Tastenklicks simulieren willst, an ein Programm, desen Entwickler explizit wollen, dass der User selbst Tasten drückt (z.B. Surfbars, wo überwacht werden soll, dass jemand vor dem Bildschirm sitzt), solltest du lieber einen Treiber benutzen.
Wie man ein Proggy starten kann, wurde hier ja bereits beantwortet.
Viele Grüsse,
Macci