Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Tastatur beschreiben (https://www.delphipraxis.net/157-tastatur-beschreiben.html)

REB1806 14. Jun 2002 21:43


Tastatur beschreiben
 
Tach auch

ich möchte einen oder mehrere Tastendrücke simulieren und an Windows 2000 weitergeben, nicht an eine laufende Anwendung,

thomasdrewermann 14. Jun 2002 21:59

Meinst du damit zb. die Windows Taste?

Christian Seehase 14. Jun 2002 23:25

Moin REB1806,

ich denke mal, es wäre ganz hilfreich, wenn Du kurz beschreiben könntest, was Du vorhast.
Keyboard Events werden immer in die MessageQueue des Threads geschrieben, der den Tastaturfokus hat.
Welchen meinst Du denn?

REB1806 15. Jun 2002 14:07

Tastatureingabe
 
Es geht um eine elektronische Umschaltbox, die ich über Tastenkombinationen z.B.
ALT+STRG+SHIFT+Nummer (1 bis 8) umschalten kann, unter DOS ist es möglich, sollte doch dann auch unter Windows gehen oder ??

REB1806 15. Jun 2002 14:12

Tastatureingabe
 
Es geht um eine elektronische Umschaltbox, die ich über Tastenkombinationen z.B.
ALT+STRG+SHIFT+Nummer (1 bis 8) umschalten kann, unter DOS ist es möglich, sollte doch dann auch unter Windows gehen oder ??

REB1806 15. Jun 2002 14:13

Tastatureingabe
 
Es geht um eine elektronische Umschaltbox, die ich über Tastenkombinationen z.B.
ALT+STRG+SHIFT+Nummer (1 bis 8) umschalten kann, unter DOS ist es möglich, sollte doch dann auch unter Windows gehen oder ??

jbg 15. Jun 2002 14:19

Wolltest du deinen Text editieren und hast dauernd auf Antworten gedrückt, oder was soll das?

An wen möchtest du jetzt diesen Tastedruck schicken? Win2000 kann damit nämlich nichts anfangen.
Aber wie ich es sehe, möchtest du den Tastedruck abfangen und dann die elektronische Umschaltbox je nach Zifferntaste steuern, oder irre ich mich da?

Christian Seehase 15. Jun 2002 14:35

Moin REB1806,

mangels entsprechender Switchbox kann ich das jetzt nicht ausprobieren, aber versuch's mal damit:

Code:
procedure SwitchMachine(const p_cMachine : Char);

var
  hWindow : DWORD;

begin
  hWindow := GetDesktopWindow;
  if hWindow = 0 then
  begin
    exit;
  end;
  SendMessage(hWindow,WM_KEYDOWN,VK_LMENU,0);
  SendMessage(hWindow,WM_KEYDOWN,VK_CONTROL,0);
  SendMessage(hWindow,WM_KEYDOWN,VK_SHIFT,0);
  SendMessage(hWindow,WM_KEYDOWN,ord(p_cMachine),0);
  SendMessage(hWindow,WM_KEYUP,ord(p_cMachine),$C0000000);
  SendMessage(hWindow,WM_KEYUP,VK_SHIFT,$C0000000);
  SendMessage(hWindow,WM_KEYUP,VK_CONTROL,$C0000000);
  SendMessage(hWindow,WM_KEYUP,VK_LMENU,$C0000000);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz