Autor | Thema: Position und Größe von fremden Fester ermitteln | | Datum:01.06.01 20:05 
(privat@daniel-hecken.de) | |
Ich brauche für mein aktuelles Programm eine Möglich, die Postion und Größe eines anderen Anwendungsprogramm zu ermitteln.
Den genauen Namen des Anwendungsfenster hab ich über addwindows $ herausbekommen, klappt auch zuverlässig.
Wenn es hilft:
Das andere Programm, von dem die Postion des Hauptfenster ermittelt wird, ist ebenfalls in Profan programmiert, und jetzt knallts, es ist das selbe Programm.
Am Anfang soll das Programm überprüfen, ob es schon einmal gestartet ist.
Ist es schon vier Mal geöffnet, soll es sofort beendet werden.
Das klappt schon GANZ gut !!!
Nun brauch ich die Positionen der übrigen fenster um eine "freie" Stelle auf den Bildschirm zu finden.
Beides hab ich in der ersten Version über Einträge in der Systemregistrierung realiesiert, aber
1. Sollte das Programm abstürzen, wird es ja nicht zu ende geführt, und damit das schließen nicht in der Registrierung geschrieben ( was bedeutet, das das Fenster des nächsten Programm an der falschen Stelle erscheint )
2. Bin ich kein Freund von INI , und REG Daten.
Ich denke, das es von Vorteil sein dürfte, das das Fenster immer gleich groß sein wird ( 400 x 300 Pixel ) und von Benutzer nicht vergrößerbar und nicht schiebbar ist.
mfg
Daniel
|
| | Datum:02.06.01 09:19 
(galaxy@mrk-soft.de) | |
Folgende Procedute ermittelt von einem
beliebigen Fenster die Positionen:
Def GetWindowRect(2) !"USER32","GetWindowRect"
Declare Rect#, left%, top%, right%, bottom%
proc GetWindowPos
parameters fenster$
declare fremdfenster&
Dim Rect#,16
If equ(val(fenster$),0)
Let FremdFenster& = @FindWindow(fenster$)
Else
fremdfenster& = val(fenster$)
Endif
GetWindowRect(FremdFenster&,Rect#)
Let Left% = @Word(Rect#,0)
Let Top% = @Word(Rect#,4)
Let Right% = @Word(Rect#,8)
Let Bottom% = @Word(Rect#,12)
Dispose Rect#
Endproc
übergebe der Proc GetWindowPos einfach
den Namen des Fensters oder das Handel
selber, in den 4 Variabeln steht dann
die Position.
Gruss Thorsten
|
| | Datum: 02.06.01 19:05 
(webmaster@daniel-hecken.de) | |
Hallo Thomas,
vielen dank für deine Antwort. Es war genau das was ich gesucht habe, nein es war mehr als ich gesucht habe.
Weiter so !
bis dann
Daniel
|
|
|