Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Windows keyboard event auslösen (https://www.delphipraxis.net/102815-windows-keyboard-event-ausloesen.html)

gibb 5. Nov 2007 13:22


Windows keyboard event auslösen
 
Hallo miteinander.

Nun ich habe eine Client server verbindung zwischen meinem PC und meinem Natel realisieren können (leider in java) dort war es mir nicht möglich windows keyboards event auszulösen.

mein wunsch ist es nun windows tastaturen events auszulösen. Also zumbeispiel dem PC sozusagen mitzuteilen es sei die space taste gedrückt worden oder alt+F4 usw. Leider finde ich nur beispiele für das empfangen von events nicht für das auslösen.

Kann mir jemand ein Funktionierendes beispiel geben um ein windows keyboard event auszulösen oder mir zumindest sagen das dass nicht funktioniert ?

lg

gibb

gibb 5. Nov 2007 13:43

Re: Windows keyboard event auslösen
 
http://www.delphipraxis.net/internal...ect.php?t=9474

habs sogar hier im Forum gefunden... mann müsste halt nur die richtigen schlagwörter bei der suche verwenden

danke lg gibb

gibb 5. Nov 2007 14:32

Re: Windows keyboard event auslösen
 
Nun ich musste gerade feststellen das mir das wohl nicht reicht.. mein problem ist nun folgendes


ich möchte winamp mit meiner Applikation "fehrnsteuern" winamp hört auf sogenannte hotkeys, nun ist dies jedoch nur der fall wenn winamp den fokus hat... daher nehme ich an das geht dann nicht mehr mit den "normalen" windows events liege ich da falsch ? da diese wohl nicht auf der Applikation ein keydown auslöst

lg gibb

gibb 18. Dez 2007 14:18

Re: Windows keyboard event auslösen
 
so können tastaturen events direkt an einen Handle von einem Gui geschickt werden:

Code:
 If pos('PLAY',Command) > 0 then
  begin
    postmessage(FPowerDVDGUIHandle,WM_KEYUP,13,0);
    MemoCommand.Lines.Add('PowerDVD Kommando: Play')
  end
So können Fenster Handles ausgelesen werden Problem ist halt das richtige fenster zu finden und den FensterHandletitel zu finden. ich habe das mit winsight gemacht. Prob ist einfach das es ziemlich mühsam ist bis man den richtigen findet und es zum teil fenster gibt deren titel sich ändert:

Code:
function TForm1.FindWindowByTitle(WindowTitle: string): Hwnd;
var
  NextHandle: Hwnd;
  NextTitle: array[0..260] of char;
begin
{Findet einen Fensterhandle von einem Prozess. Das wird benötigt um die Tasten
events direkt an das richtige Fenster zu schicken ohne das noch andere Programme
äuf dieses Event reagieren.
}
  // Erster Window handle
  NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
  while NextHandle > 0 do
  begin
    // Windowshandle Text auslesen
    GetWindowText(NextHandle, NextTitle, 255);
    if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then
    begin
      Result := NextHandle;
      Exit;
    end
    else
      // Nächster Window Handle
      NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
  end;
  Result := 0;
end;


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

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