AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fensterposition einer fremden Anwendung ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Fensterposition einer fremden Anwendung ermitteln

Ein Thema von KahPee · begonnen am 27. Jan 2010 · letzter Beitrag vom 27. Jan 2010
Antwort Antwort
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#1

Fensterposition einer fremden Anwendung ermitteln

  Alt 27. Jan 2010, 17:32
Hi,

ich möchte ein Programm schreiben was auf eine fremde Anwendung zugreift. Dazu brauche ich die Position dieser anderen Anwendung auf dem Desktop. Ich habe schon das Handle des entsprechenden Fensters ermittelt. Desweiteren habe ich diesen Thread schon als Lektüre zur hand genommen.
Allerdings habe ich noch folgendes Problem. ich möchte nicht die obere, linke des fenster haben (außen vom Rand). Sondern die obere, linke Ecke der eigentlichen Form. Also INNEN vom rahmen. So würde es dann z.b. kein unterschied machen ob ich unter vista oder windows das Programm nutze (da haben die fenster ja unterschiedliche Rahmendicken).

Weiß jemand wie sich dieses Problem lösen lässt?

mfg KahPee
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Fensterposition einer fremden Anwendung ermitteln

  Alt 27. Jan 2010, 17:35
Was verstehst du unter "zugreifen"?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Fensterposition einer fremden Anwendung ermitteln

  Alt 27. Jan 2010, 17:46
Das Zugreifen mach ich über die Maus. Mir kommt es jetzt nur auf die Position des Fensters an. Und hier halt im besonderen auf die innere obere linke ecke
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Fensterposition einer fremden Anwendung ermitteln

  Alt 27. Jan 2010, 18:13
Zumindest die obere linke äußere Ecke kannst du mit MSDN-Library durchsuchenGetWindowPlacement / MSDN-Library durchsuchenGetWindowPos / MSDN-Library durchsuchenGetWindowRect ermitteln.
Die Höhe einer normalen Titelbar und die Breite einer Sizebox kannst du dann über MSDN-Library durchsuchenGetSystemMetrics ermitteln.
Ob das Fenster überhaupt eine Titelbar hat, oder nur ein Toolfenster ist, kannst du mit MSDN-Library durchsuchenGetWindowLong (GWL_STYLE) ermitteln.

Damit könntest du die Position nun selber berechnen.

[EDIT]
evtl. könntest du auch noch was mit MSDN-Library durchsuchenGetTitleBarInfo anfangen.


[EDIT]
OK, jetzt kannst du dir die Rechenarbeit doch sparen: MSDN-Library durchsuchenGetWindowInfo erledigt das für dich.

[EDIT]
MSDN-Library durchsuchenGetClientRect übrigens auch.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Fensterposition einer fremden Anwendung ermitteln

  Alt 27. Jan 2010, 18:53
Zitat von KahPee:
Das Zugreifen mach ich über die Maus. Mir kommt es jetzt nur auf die Position des Fensters an. Und hier halt im besonderen auf die innere obere linke ecke
Willst du irgendeinen Button anklicken oder wie? Sag uns doch einfach mal, was du genau machen willst, da findet sich bestimmt eine bessere Möglichkeit. Und wenn das zweite Programm auch von dir ist gibt es noch wesentlich bessere Möglichkeiten der Interprozesskommunikation.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Fensterposition einer fremden Anwendung ermitteln

  Alt 27. Jan 2010, 21:51
Zitat von Luckie:
Zitat von KahPee:
Das Zugreifen mach ich über die Maus. Mir kommt es jetzt nur auf die Position des Fensters an. Und hier halt im besonderen auf die innere obere linke ecke
Willst du irgendeinen Button anklicken oder wie? Sag uns doch einfach mal, was du genau machen willst, da findet sich bestimmt eine bessere Möglichkeit. Und wenn das zweite Programm auch von dir ist gibt es noch wesentlich bessere Möglichkeiten der Interprozesskommunikation.
Unter anderem Buttons klicken. Geht aber in diesem Fall nicht anders. Vielen dank für die Antwort denke mal, dass ich damit weiterkommen

mfg KahPee
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Fensterposition einer fremden Anwendung ermitteln

  Alt 27. Jan 2010, 22:54
Ermittle das Handle von der Schaltfläche und schicke eine BM_CLICK Nachricht an das Fenster.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:25 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