AGB  ·  Datenschutz  ·  Impressum  







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

Handle einer MainForm erhalten

Ein Thema von Martin K · begonnen am 29. Aug 2006 · letzter Beitrag vom 31. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#1

Handle einer MainForm erhalten

  Alt 29. Aug 2006, 15:41
Moin,
ich hätte gerne das Handle einer MainForm - ich habe aber nur das Handle der zugehörigen Application und der Titel der MainForm kann variieren.

So erhalte ich das Handle der Application:
Delphi-Quellcode:
var AppHandle: HWND;
begin
  AppHandle := FindWindow(nil, 'Name meiner Anwendung');
  if AppHandle <> 0 then
    //...
Ich weiß zwar, dass ich so das Handle einer Form erhalten kann:
Delphi-Quellcode:
var FrmHandle: HWND;
begin
  FrmHandle := FindWindowEx(0, 0, nil, 'Titel meiner Form');
  if FrmHandle <> 0 then
    //...
...aber wie gesagt, kenne ich den Titel meiner Form nicht bzw. dieser kann sich ständig ändern und ist somit nicht eindeutig.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Handle einer MainForm erhalten

  Alt 29. Aug 2006, 15:43
Bei FindWindow kannst Du als ersten Parameter die Klasse angeben, von der das Fenster sein soll.
Den zweiten Parameter machst Du dann nil.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Handle einer MainForm erhalten

  Alt 29. Aug 2006, 15:48
Meinst Du so:
FindWindow('TForm', nil); ???

Na, wer weiß wie viele TForm's gerade laufen, da würd ich doch jede Menge Handels bekommen...
Also es soll halt die MainForm der Application (s. erster Code) sein!
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Handle einer MainForm erhalten

  Alt 29. Aug 2006, 15:53
self.Handle
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Handle einer MainForm erhalten

  Alt 29. Aug 2006, 15:59
Zitat von mkinzler:
self.Handle
Nene, das Handle der MainForm einer bestimmten Application, NICHT meiner eigenen.
Also ein fremdes Programm!
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Handle einer MainForm erhalten

  Alt 29. Aug 2006, 16:17
eher so:
myHandle := FindWindow('TEineBestimmteForm', nil); so kannst Du sagen, dass Du das Handle des Fensters willst, das von der "EineBestimmteForm" abstammt. Der Titel des Fensters ist dann egal.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Handle einer MainForm erhalten

  Alt 29. Aug 2006, 16:33
Ja, so funktioniert's, Danke
Delphi-Quellcode:
var FrmHandle: HWND;
begin
  FrmHandle := FindWindow('TForm1', nil);
Allerdings funzt es nach ein paar Mal nicht mehr, erst wenn ich die Anwendung dann wieder neu starte
Aber das wird ich bestimmt irgendwie noch in den Griff bekommen...
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Handle einer MainForm erhalten

  Alt 31. Aug 2006, 14:50
Zitat von Martin K:
Allerdings funzt es nach ein paar Mal nicht mehr, erst wenn ich die Anwendung dann wieder neu starte
Aber das wird ich bestimmt irgendwie noch in den Griff bekommen...
Jetzt habe ich das Problem gelöst:
Es lag daren, dass ich wohl in meinen Projekten öfters Forms mit dem Namen TForm1 habe (bin immer zu faul zum Umbenennen).
Besser ist es, hier einen eindeutigen Namen für die Form zu nehmen!
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Handle einer MainForm erhalten

  Alt 31. Aug 2006, 14:57
Moin Martin,

Zitat von Martin K:
Besser ist es, hier einen eindeutigen Namen für die Form zu nehmen!
Das ist zwar richtig, nutzt Dir aber nichts, wenn Du eine fremde Anwendung ansprechen willst, da es ja reichlich Programme geben kann, die die den gleichen Namen für die Fensterklasse benutzen.
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
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Handle einer MainForm erhalten

  Alt 31. Aug 2006, 15:02
naja, es war schon eine von mir programmierte Anwendung.
Oder was meinst du jetzt?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  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 08:40 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