Fenster Position auf dem Desktop.

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Fenster Position auf dem Desktop.

Beitrag von Andreas21 »

Hei

ich suche eine API möglichkeit die Fenster position auf dem Desktop heraus zu finden. Ich habe natürlich das Handel des Fensters. :-)

Also die X,Y Position. Aber nicht die vom Fenster Ramen sondern vom Fenster.

Kann mir da einer einen Tip geben? Bitte.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Beitrag von Andreas21 »

Jo sowas habe ich gemeint. Damit müste ich doch die X und Y punke bekommen können vom Fenster ohne Ramen.

Code: Alles auswählen

IncludeFile "ClientSize.pbi" 

Procedure Position(handel)
  x = WindowClientX(handel)
  y = WindowClientY(handel)
  Debug Str(x) + "x" + Str(y)
EndProcedure

Position(FindWindow_(0,"Fenster Name"))
Danke für den Code :-)

Naja es geht fast. Ich kann die Grösse des Ramens berechnen damit. Also wenn ich WindowX() und WindowY() rausneme. Jetzt fehlt nur noch die möglichkeit die Position auf den Desktop heraus zu finden.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Beitrag von Andreas21 »

Hat wiklich keiner eine Idee :-(

Die grösse des Fensterramen wuse ich ja schon wie ich den berchnen kann. Hatte mal ein Tool geschrieben wo ich das brauchte. Aber die Position des Fenster brauchte ich da nicht.

Es muss doch eine möglichkeit geben die Position zu ermiteln.

Ich rede von Fremd Fenstern. Also keine von PB erzeugten.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
real
Beiträge: 468
Registriert: 05.10.2004 14:43

Beitrag von real »

Versuch's mal mit GetWindowRect_(handel,rect)

rect ist eine Struktur, die aus den vier Longs left, top, right & bottom zusammengesetzt ist und auch unter PB schon definiert ist (RECT).

Ich hab's mal in Code gebastelt:

Code: Alles auswählen

Procedure Position(handel)
  DefType.RECT WindowPos
  GetWindowRect_(handel,WindowPos)
  Debug Str(WindowPos\left) + "x" + Str(WindowPos\top)
EndProcedure

handel=OpenWindow(100, 100, 200, 195, 260, #PB_Window_SystemMenu, "PureBasic Window")
Position(handel)
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Beitrag von Andreas21 »

Hei,

Ok ich werde das Testen. Danke.
Ist das auch kompatiebel zu Win9X oder nur XP.
Ich hate da mal nämlich ne Api funktion wo da probleme gab und ich glaube das war soga die. Ich weiss es aber nicht mehr genau, ist schon ne weile her.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
real
Beiträge: 468
Registriert: 05.10.2004 14:43

Beitrag von real »

GetWindowRect gibt's schon seit Christi Geburt ;-) Sollte theoretisch schon bei Windows 3.11 funktionieren.
Antworten