Autor Beitrag
D3lta
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Do 13.08.09 23:24 
hey leute, ich hab ein kleines problem mit postmessage.

ich sende damit tasten an eine andere anwendung. wie kann ich da bei 2 gleichen hwnds (fenstertiteln) unterscheiden an welches gepostet werden soll? =)
danke :)


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Do 13.08.2009 um 23:31
D3lta Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 14.08.09 15:23 
da das ja grad nicht mehr so aktuell ist und ich wirklich dringend eine lösung brauche
*push ich das jetz hier mal*

wie wird das eig. gehandhabt? benutzt postmessage dann die erste anwendung mit dem hwnd oder wechselt sich das ab und naja, wie kann ich das zielgerichtet dann drauf ansetzen ;)
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 14.08.09 15:29 
Ein Handle (das ist dieses Hwnd, an das du die Message schickst) ist eindeutig. Da gibt es keine zwei von, die gleich sind. Was man machen kann, um eine spezielle Kopie eines mehrfach laufenden Programmes mit dem selben Fenstertitel zu bekommen, weiß ich nicht.

Wenn du zwei Kopien des Programmes laufen hast, und deine Messages immer an dasselbe Fenster schicken willst, musst du einmal das Fenster suchen, und dir das Handle merken. Das funktioniert allerdings nur solange sich das Handle des Fensters sich nicht ändert - bei Delphi-Formularen kann man das afaik durch ändern von FormStyle zur Laufzeit erreicht werden. Deshalb steht in der Hilfe dazu auch drin, dass man das nicht tun sollte...

_________________
We are, we were and will not be.
D3lta Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 14.08.09 16:48 
handle davon rauskommen is ja kein prob, nu ich hab jetzt halt 2 mal das gleiche handle (2 mal gleiche anwendung)

aber möchte entscheiden können an welche anwendung (mit dem gleichen handle) ich das senden möchte^^
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 14.08.09 17:06 
Nochmal, es gibt keine 2 gleichen Handles. Wäre ja auch sonst doof von Windows gemacht, weil es selbst die Programme / Fenster unterscheiden könnte, nem?

Zeig am besten mal den Code den du verwendest um die HWNDs ausfindig zu machen. Es könnte sein das du nur glaubst du hast 2 Programme mit dem selben HWND weil du immer nur ein Programm anfragst wegen dem HWND.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
D3lta Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Fr 14.08.09 19:27 
ausblenden Delphi-Quelltext
1:
h := FindWindowA(0'titel');					

<- so such ich halt und dann send ich halt per postmessage an h

und der titel is z.B. 2 mal vorhanden

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 14.08.09 22:11 
user profile iconD3lta hat folgendes geschrieben Zum zitierten Posting springen:
h := FindWindowA(0, 'titel');

<- so such ich halt und dann send ich halt per postmessage an h

und der titel is z.B. 2 mal vorhanden

Da haben wir es doch schon. Es gibt zwei fenster mit dem gleichen Titel, aber die haben betsimmt nicht das gleiche Handle. Guck mal mit WinSpy, ob sie auch die gleiche Fensterklasse haben. Haben sie auch die gleiche Fensterklasse, wird es schwierig.
D3lta Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 15.08.09 00:35 
ich such doch damit aber doch nur nach dem titel oder? weil is ja 2mal die gleiche anwendung
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 15.08.09 01:21 
Hast du schon mal geguckt für was der erste Parameter von FindWindow steht? Aber wenn du sagst, dass es die gleiche Anwendung ist, dann dürfte auch die Fensterklasse die selbe sein.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 15.08.09 15:25 
Dir bleibt dann nur der Weg über eine Auflistung aller Fenster. Dann kannst du in der CallBack-Prozedur für EnumWindows den Titel vergleichen und ggf. deine Aktion durchführen.