Announcement

Collapse
No announcement yet.

Tastatur-API "keybd_event"

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tastatur-API "keybd_event"

    Hallo Herr Kosch,
    in meinem Delphi-Projekt simuliere ich die Tastatur mit der API-Funktion "keybd_event".
    Für die Simulation der beiden Tasten Shift + Tab benutze ich folgende Pascal-Sequenz:
    keybd_event(vk_Shift,0,0,0); // Shift-Key
    keybd_event(vk_Tab,0,0,0); // Tab-Key
    Wie kann ich anschließend den Shift-Modus zurücksetzen ??
    Nochmal aufrufen von keybd_event(vk_Shift,0,0,0) funktioniert nicht.
    Einmal Shift immer Shift ??

    Danke.

    R.Eberhard

  • #2
    Hallo,

    falls mit der Tastenkombination SHIFT+TAB der Eingabefokus in das vorherige Control zurückgesetzt werden soll, geht das über den Aufruf von Perform(WM_NextDlgCtl, 1, 0) auch einfacher.

    Falls jedoch SHIFT+TAB in jedem Fall programmgesteuert abgesetzt werden soll, ist der folgende Aufruf notwendig:
    <pre>
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    keybd_event(VK_SHIFT, Mapvirtualkey(VK_SHIFT, 0), 0, 0 );
    keybd_event(VK_TAB, MapVirtualKey(VK_TAB,0), 0, 0);
    keybd_event(VK_TAB, MapVirtualKey(VK_TAB,0), KEYEVENTF_KEYUP, 0);
    keybd_event(VK_SHIFT, Mapvirtualkey(VK_SHIFT, 0), KEYEVENTF_KEYUP, 0 );
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
    keybd_event(VK_TAB, MapVirtualKey(VK_TAB,0), 0, 0);
    keybd_event(VK_TAB, MapVirtualKey(VK_TAB,0), KEYEVENTF_KEYUP, 0);
    end;
    </pre&gt

    Comment


    • #3
      Was fummelst du mit keybd_event rum. Setz doch einfach mit PostMessage das geeignete ab. keybd_event ist mehr fuer Treiber-Programmierer

      Comment

      Working...
      X