Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Unbekannte Fenster steuern (https://www.delphipraxis.net/128646-unbekannte-fenster-steuern.html)

Coder1990 3. Feb 2009 12:45


Unbekannte Fenster steuern
 
Seas,

ich habe ein Makro Programm geschrieben, dass jetzt nun auch Makros ausführen soll, die minimierte oder nicht im Vordergrund stehende Fenster steuern.
Ich weiß, ich weiß Suche.. aber ich such jetzt schon länger rum und habe nichts gefunden.
Hier meine Fragen:

1. Mit welchen Prozeduren gebe ich anderen Fenstern befehle (messages)?
2. Benötige ich dazu die Komponente des Fensters, die modifiziert werden soll oder wie muss ich da vorgehen?
3. Was für Werte muss ich aufzeichnen (Fenstername, Komponentennamen..) um das Makro später erfolgreich wiederzugeben
4. bzw. wie erhalte ich den Namen des Fensters, welches sich im Vordergrund befindet?

Wenn ihr gute Seiten kennt, die sich mit dem Thema auseinandersetzen, KÖNNTE mir das auch schon reichen (kommt darauf an ob alles enthalten ist ;))

MfG

Larsi 3. Feb 2009 13:01

Re: Unbekannte Fenster steuern
 
Also mit Sendmessage kannst du beliebigen Fenster Befehle senden. Du brauchst dafür das Handle des Fensters oder der Komponente. Guck dir mal das Programm Win Spy von toms an, da kann dir einen Code generieren.

Coder1990 4. Feb 2009 15:30

Re: Unbekannte Fenster steuern
 
So ich hab WinSpy mal ausprobiert und direkt deinstalliert, entweder habe ich es nicht verstanden oder es konnte mir nicht weiterhelfen.
Jedenfalls wollte ich nochmal erwähnen dass das Programm für alle möglichen Fenster Makros erstellen können soll. Also ist es mir völlig unbekannt welche Programme damit gesteuert werden sollen. Möglicherweiße hätte mir WinSpy irgendwie beispielhaft weitergeholfen, habe aber wie gesagt nichts gefunden.
Noch weitere Informationen?

Cyberbob 4. Feb 2009 15:39

Re: Unbekannte Fenster steuern
 
Wenn du nicht weisst, was für ein programm du steuern willst, wo dessen fenster ist und auch sonst keine infos hast, wie willst du dann überhaupt wissen, ob dein programm was zu tun hat.
was genau willst du überhaupt machen. um welche fenster handelt es sich hier. um bestimmte oder gar alle sichtbaren fenster. was willst du mit diesen machen?

wenn du weisst, wo das gesuchte fenster ist, könntest du das handel selbigens ermitteln und dann mit sendmessage nachrichten an dieses schicken.

Coder1990 4. Feb 2009 16:15

Re: Unbekannte Fenster steuern
 
Ah ich scheine mein Problem nicht richtig verdeutlicht zu haben:

Mein Projekt besteht aus einem "MakroEditor" und einem "MakroAusführer" in ersten erstellt man Makros und biete Funktionen mit denen man auch die momentante Mausposition auslesen kann und ins Makro abspeichern kann, nun will ich noch Makro Funktionen wie z.b. "SendKey(##Var##,B)" soll an das Fenster "Var" nun den Druck auf "B" senden.
Nun weiß ich nicht wie ich das Fenster am besten abspeichere für z.b. diese Funktion (soll es nur der Fenstertitel sein oder Komponentenname und wie krieg ich Fenstertitel überhaupt). Deswegen will ich eine Hilfe implementieren die bei der Makro Erstellung z.b. bei Klick auf ein anderes Fenster in einer Listbox die benötigten Variablen sozusagen aus dem Fenster einspeichert.

Ich glaube ich verdeutliche das mal an einem Beispiel:

"Ich will nun ein Makro erstellen um Firefox zu refreshen, wenn er nicht offen ist!"

Der Benutzer soll nun so vorgehen:

1. Er aktiviert die Funktion, dass bei Klicken auf andere Fenster (während MakroEditor aktiv ist), die benötigten Fensterdaten ausgelesen und in einer Listbox gespeichert werden (z.b. Fenstertitel)
2. Jetzt schaut der Benutzer in die Listbox und kopiert den Fenstertitel heraus.
3. Nun schreibt er in mein MakroMemoFeld (hier werden Makrobefehle eingefügt) "SendKey(" dann fügt er hier den Fenstertitel ein und dann noch ",F5)".
4. Fertig

Nun soll mein ausführendes Programm Firefox refreshen können.



Mein Problem ist einfach nur dass ich nicht weiß wie ich da rangehen soll, also welche Werte ich aus den Fenstern brauche um sowas zu realisieren (möglicherweiße muss ja auch mal auf spezielle Buttons gedrückt werden oder Text in ein EditFeld im Fenster eingetippt werden).

Könnt ihr mir nun weiterhelfen? :)


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