AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu FindWindow

Ein Thema von Marco1974 · begonnen am 27. Sep 2006 · letzter Beitrag vom 27. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2      
Marco1974

Registriert seit: 18. Sep 2006
7 Beiträge
 
#1

Frage zu FindWindow

  Alt 27. Sep 2006, 11:23
Hallo,

ich habe ein Delphi-Programm geschrieben, welches eine andere Anwendung fernsteuert. Mittels FindWindow kann ich auch wunderbar das Handle dieser Anwendung ermitteln. Nur ist es leider so, dass der Fenstername der Anwendung ständig variiert. D.h. mal lautet er "AnwendungX", mal "AnwendungY", mal "Anwendung123", usw.
Wie kann ich denn mittels FindWindow ein Fenster finden, von dem nur der Teil des Fensternamens bekannt ist? Zumindest bei mir funktioniert das nur bei einer absoluten Übereinstimmung.

Viele Grüße

Marco
  Mit Zitat antworten Zitat
TAC

Registriert seit: 29. Nov 2005
Ort: Hamburg
25 Beiträge
 
#2

Re: Frage zu FindWindow

  Alt 27. Sep 2006, 12:11
Moin,

Handelt sich dabei zufällig um den IE?
Da gibts sicherlich auch diverse Themen zu, aber vielleicht reicht es ja schon, einfach den Classname mit einzubinden.

Mfg
tac
  Mit Zitat antworten Zitat
Marco1974

Registriert seit: 18. Sep 2006
7 Beiträge
 
#3

Re: Frage zu FindWindow

  Alt 27. Sep 2006, 12:15
Hallo,

nein - es ist nicht der IE

Hab jetzt gerade keine MS-SDK-Doku zur Hand, aber falls der Class-Name der erste Parameter von FindWindow ist, dann geb ich ihn durchaus mit an.

Es funktioniert ja auch wunderbar - nur würde ich halt gerne das Handle bekommen, ohne den 100% korrekten Fensternamen kennen zu müssen.
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#4

Re: Frage zu FindWindow

  Alt 27. Sep 2006, 12:17
Da bleibt dir nur die Variante mit "nil" als Name und selbst zu prüfen, ob der Name passt.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Marco1974

Registriert seit: 18. Sep 2006
7 Beiträge
 
#5

Re: Frage zu FindWindow

  Alt 27. Sep 2006, 12:20
Zitat von ste_ett:
Da bleibt dir nur die Variante mit "nil" als Name und selbst zu prüfen, ob der Name passt.
Gibt's da echt keine Möglichkeit? In anderen Programmiersprachen funktioniert das doch auch
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Frage zu FindWindow

  Alt 27. Sep 2006, 12:32
Moin Marco,

Zitat von Marco1974:
In anderen Programmiersprachen funktioniert das doch auch
aber auch nur dann, wenn die eine Funktion enthalten, wie ste_ett sie vorgeschlagen hat.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Marco1974

Registriert seit: 18. Sep 2006
7 Beiträge
 
#7

Re: Frage zu FindWindow

  Alt 27. Sep 2006, 12:38
Problem bei meiner Anwendung ist, dass die ersten 10 Zeichen fix sind und dann ca. 25 verschiedene alphanumerische Zeichen kommen (Compilerdatum + Nummer des Compilats + anderer Firlefanz)... Ich fürchte, dass das ein wenig beim Auslesen dauern könnte.

Weiß zufällig jemand, wie das Ganze bei "AutoIt" realisiert worden ist? Dort gibt es z.B. die Möglichkeit via FindWindows-Befehl auch das Handle von Fenstern zu bekommen, deren Titel nur teilweise bekannt sind. (Und es gibt keine Verzögerung, wenn ich mittels eines solchen FindWindows-Befehl Handles ermitteln möchte)

Viele Grüße

Marco
  Mit Zitat antworten Zitat
TAC

Registriert seit: 29. Nov 2005
Ort: Hamburg
25 Beiträge
 
#8

Re: Frage zu FindWindow

  Alt 27. Sep 2006, 13:04
Wenn es dann ein oder mehrere Windows mit selben oder ähnlichen Namen gibt, könnte hier die Lösung drinstecken :toic74860
Und da sich das handle zur Laufzeit eines Programm eigentlich nicht ändern sollte, braucht man dies ja auch nur einmal auslesen.
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Frage zu FindWindow

  Alt 27. Sep 2006, 13:09
schau dir mal FindAllWindows an. Du könntest die Funktion so ändern, dass sie deinen Wünschen entspricht (also die Zeile mit CompareText )
Oliver Hanappi
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Frage zu FindWindow

  Alt 27. Sep 2006, 19:06
Moin Marco,

Die Stichworte/Suchbegriffe, die mir zur Problemlösung einfallen:
EnumWindows, IsWindowVisible, SendMessage/WM_GETTEXT/WM_GETTEXTLENTH, pos, AnsiUpperCase oder AnsiLowerCase.

Soll heissen:
Alle Top-Level-Fenster durchgehen, dabei die sichbaren herausfiltern, die Caption holen und prüfen, ob der Fenstertitel mit dem gewünschten String anfängt.

[EDIT]
Humane Rechtschreibkorrektur durchgeführt.
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:34 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