Thema: Delphi away-Programm

Einzelnen Beitrag anzeigen

Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#21

Re: away-Programm

  Alt 2. Mär 2004, 19:34
Eintragung der Procedure zum versenden der simulierten Tasten:

Delphi-Quellcode:

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
    procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean);
  public
    { Public-Deklarationen }
  end;
Procedure für das versenden ! (unter implementation einfügen)

Delphi-Quellcode:
procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean);
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;
end;
Beispiel zum versenden:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Simuliert die Linke Windows taste
  PostKeyEx32(VK_LWIN, [], False);

  // Simuliert den Buchstaben D
  PostKeyEx32(Ord('D'), [], False);

  // Simuliert die Tastenkombination Strg-Alt-C
  PostKeyEx32(Ord('C'), [ssctrl, ssAlt], False);
end;
Ist das von Swiss ich hoffe so hilft es dir mehr...
Christian Reber
  Mit Zitat antworten Zitat