Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   GetWindow Unterschiede FMX und VCL (https://www.delphipraxis.net/204969-getwindow-unterschiede-fmx-und-vcl.html)

bernhard_LA 18. Jul 2020 22:30

GetWindow Unterschiede FMX und VCL
 
mit dem Code (Quelle: https://www.swissdelphicenter.ch/en/showcode.php?id=327 kann ein Fenster über seinen Namen gesucht werden , ging unter VCL prima.
Unter FMX kann die Zeile
Delphi-Quellcode:
GetWindow(Application.Handle, GW_HWNDFIRST);
nicht mehr kompiliert werden, wie Lautet die Lösung .... auch UNIX fähig dann ?


Delphi-Quellcode:
function FindWindowByTitle(WindowTitle: string): Hwnd;
var
  NextHandle: Hwnd;
  NextTitle: array[0..260] of char;
begin
  // Get the first window
  NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
  while NextHandle > 0 do
  begin
    // retrieve its text
    GetWindowText(NextHandle, NextTitle, 255);
    if Pos(WindowTitle, StrPas(NextTitle)) <> 0 then
    begin
      Result := NextHandle;
      Exit;
    end
    else
      // Get the next window
      NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
  end;
  Result := 0;
end;

himitsu 19. Jul 2020 11:38

AW: GetWindow Unterschiede FMX und VCL
 
Application.Handle ist das interne unsichtbare "ControlFenster", welches man in Windows benötigt, um zentral globale SystemMessages empfangen zu können.
Und mit der WinAPI (HWND, GetWindow, ...) kann man natürlich nur im Windows arbeiten.

Linux nutzt mit X Window ein System über TCP, drum lassen sich da auch Programmfenster über die Console problemlos auf anderen Systemen anzeigen.
https://youtu.be/-vX90aEWurg?t=495


OK, da im Windows als Grundgerüst alle Fenster auch über die WinAPI aufgebaut werden müssen, auf deren Canvas dann FMX sich malt,
könnte man hier auch über GDI diese Fester finden.

Willst du nur "eigene" Fesnter finden?
Screen.Forms ... muß mal schauen, aber ich denk mal das gibt es auch im FMX.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:54 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