Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Handle an anderes Fenster weitergeben (https://www.delphipraxis.net/84852-handle-anderes-fenster-weitergeben.html)

Stefan92 22. Jan 2007 20:48


Handle an anderes Fenster weitergeben
 
Hallo,

mein neuestes Programm ist so eine Art Trainer, der Tastendrücke simulieren soll. Um dem User allerdings etwas Arbeit zu ersparen möchte ich, dass das Handle direkt an das Fenster weitergegeben wird. Wie finde ich denn dazu den Namen des Handles raus? Irgendwie muss das Ganze ja eindeutig identifizierbar sein, oder?

Danke im Voraus für eure Antworten.

Gruß


Stefan

r2c2 22. Jan 2007 20:59

Re: Handle an anderes Fenster weitergeben
 
Ich fürchte du hast etwas Gundlegendes nicht verstanden. Ein handle ist nur eine Art "Nummer" des Fensters. Dieses erhälst du z.B. über die Funktion Delphi-Referenz durchsuchenFindWindow(Ex)...

BTW: Die Handles der einzelnen VCL-Komponenten(genauer: der TWinControls), kriegst du über die property Handle...

mfg

Christian

Stefan92 23. Jan 2007 06:20

Re: Handle an anderes Fenster weitergeben
 
Danke erstmal für die Antwort.
Verstehe ich das also richtig, wenn ich sagen würde, ein Handle ist wie eine IP-Adresse?
Übrigens habe ich in meiner Hilfe in Delphi 7 nichts zu FindWindow gefunden. Allerdings habe ich im Internet folgenden Code gefunden:
Delphi-Quellcode:
PROCEDURE TForm1.Button2Click(Sender: TObject);
VAR h: THandle;
begin
  h := FindWindow('Notepad',NIL);
  IF NOT (h=NULL) THEN
  begin
    ShowWindow(h,SW_MAXIMIZE);
  end;
end;
Dieses Beispiel bezog sich auf den Notepad von Microsoft. Wenn ich aber stattdessen Mozilla Firefox hinschreibe funktioniert es nicht.
Kannst du mir den Befehl eben erklären?

Gruß

Stefan

sirius 23. Jan 2007 06:40

Re: Handle an anderes Fenster weitergeben
 
Zitat:

Zitat von Stefan92
Übrigens habe ich in meiner Hilfe in Delphi 7 nichts zu FindWindow gefunden.

Für Windows-Api-Befehle musst du in Delphi unter "Hilfe" --> "Windows SDK" suchen. Und dort stehen dann die relevanten Teil aus der MSDN-Library.

r2c2 23. Jan 2007 10:17

Re: Handle an anderes Fenster weitergeben
 
Zitat:

Zitat von Stefan92
Delphi-Quellcode:
  ...
  h := FindWindow('Notepad',NIL);
  ...
Dieses Beispiel bezog sich auf den Notepad von Microsoft. Wenn ich aber stattdessen Mozilla Firefox hinschreibe funktioniert es nicht.

Guck mal ins PSDK(bzw. Win32SDK). Das hat sirius dir ja schon erklärt. Und da guckst du dir an, für was die beiden Parameter sind...
BTW. Das PSDK gibts auch online. Guckst du hier: MSDN-Library durchsuchenFindWindow

[ot]
Hallo sirius :hi:
wo man sich überall trifft...
[/ot]

mfg

Christian

Stefan92 25. Jan 2007 05:57

Re: Handle an anderes Fenster weitergeben
 
So, hab jetzt in das PSDK online geguckt und folgendes gefunden, was ich noch nicht ganz verstehe:
Zitat:

Parameters

lpClassName
[in] Pointer to a null-terminated string that specifies the class name or a class atom created by a previous call to the RegisterClass or RegisterClassEx function. The atom must be in the low-order word of lpClassName; the high-order word must be zero.

If lpClassName points to a string, it specifies the window class name. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names.

If lpClassName is NULL, it finds any window whose title matches the lpWindowName parameter.
Ich verstehe nicht so ganz, was bei diesem Parameter erwartet wird. Was ist denn ein high- bzw. low-orderword. Und wie finde ich den ClassName überhaupt heraus?

Bitte um Hilfe.

Gruß

Stefan

SirThornberry 25. Jan 2007 07:24

Re: Handle an anderes Fenster weitergeben
 
der ClassName wäre zum Beispiel TForm1, TEdit, etc. Diesen findest du mit diversen Tools heraus. Ich glaube WinSpy oder so heißt eines. Ich hab vor ewigkeiten mal ComponentFinder geschrieben der das auch kann aber es gibt auch jede menge andere Tools die besser sind. Allerdings weiß ich die Namen nicht auswendig.

Stefan92 25. Jan 2007 18:54

Re: Handle an anderes Fenster weitergeben
 
Kennt denn irgendjemand von euch vielleicht ein kostenloses Tool?
Oder muss ich den gar nicht herausfinden? Kann ich auch Nil eingeben und nur den Titel des Fensters beim zweiten Parameter angeben?

Gruß

Stefan

bitsetter 25. Jan 2007 19:33

Re: Handle an anderes Fenster weitergeben
 
Delphi-Quellcode:
  findwindow('MozillaUIWindowClass','Mozilla Firefox');
  findwindow(nil,'Mozilla Firefox');
  findwindow('MozillaUIWindowClass',nil);

Olli 25. Jan 2007 19:48

Re: Handle an anderes Fenster weitergeben
 
Zitat:

Zitat von Stefan92
Kennt denn irgendjemand von euch vielleicht ein kostenloses Tool?
Oder muss ich den gar nicht herausfinden? Kann ich auch Nil eingeben und nur den Titel des Fensters beim zweiten Parameter

Jupp, sogar mit Source. Alternativ Motzis X-Spy.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr.
Seite 1 von 2  1 2      

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