Einzelnen Beitrag anzeigen

gibb

Registriert seit: 12. Sep 2007
Ort: Bern
178 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Windows keyboard event auslösen

  Alt 18. Dez 2007, 15:18
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;
  Mit Zitat antworten Zitat