aktuelles desktop?

Anfängerfragen zum Programmieren mit PureBasic.
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

aktuelles desktop?

Beitrag von delikanli_19_82 »

hallo leute,

wie kann man feststellen, auf welchem fenster das eigene programm derzeit läuft?

müsste unter win, lin und mac eine lösung finden...

mfg

kurt
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: aktuelles desktop?

Beitrag von ts-soft »

Siehe Desktop Lib in der Hilfe. Anhand der Fensterposition sollte sich der verwendete Desktop ermitteln lassen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

Re: aktuelles desktop?

Beitrag von delikanli_19_82 »

habe ich,

aber man muss die nummer des desktops selbst angeben, um dessen width, height, depth usw zu erhalten.

ich will die nummer des desktops rausbekommen, auf dem sich das programmfenster aktuell befindet.

mir ist nicht klar, wie ich das machen soll.

mfg

kurt
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: aktuelles desktop?

Beitrag von TomS »

Steht doch eigentlich alles in der Hilfe...

Folgender Code gibt die Nummer des Desktop aus, auf dem sich die linke obere Ecke eines Fenster befindet.

Code: Alles auswählen

Define k.i
Define n.i = ExamineDesktops() - 1

If IsWindow(hWnd)	
	For k = 0 To n
		If WindowX(hWnd) >= DesktopX(k) And WindowX(hwnd) <= DesktopX(k)+DesktopWidth(k) And WindowY(hWnd) >= DesktopY(k) And WindowY(hwnd) <= DesktopY(k)+DesktopHeight(k)
			Debug "Das Fenster befindet sich auf Desktop "+Str(k)
		EndIf 
	Next 
EndIf 
Ein Fenster kann sich aber theoretisch auf allen Desktops befinden.
Aber das kriegst du bestimmt selber hin.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: aktuelles desktop?

Beitrag von ts-soft »

delikanli_19_82 hat geschrieben:ich will die nummer des desktops rausbekommen, auf dem sich das programmfenster aktuell befindet.

mir ist nicht klar, wie ich das machen soll.
Du enumerierst durch alle Desktops und vergleichst Deine Fensterkoordinaten mit denen des Desktops, also ob
sich Deines innerhalb dieser Koordinaten befindet. Von den verschiedenen Desktops fängt nur einer mit 0, 0 in der
oberen linken Ecke an :wink:

PS: Es können auch negative Werte auftauchen, je nach Desktop-Konfiguration.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

Re: aktuelles desktop?

Beitrag von delikanli_19_82 »

ich habe aus irgendeinem grund die prozeduren desktopx und desktopy nicht wahrgenommen und bin bei desktopmousex und desktopmousey hengengeblieben, was zu folge hatte, das mir nicht klar war, wie ich die desktops ermitteln soll.

darüber hinaus dachte ich, das es eine api-call geben müsste, das mir mitteilt, auf welchem desktop ich mich gerade befinde.

die vorgestellte methode ist peinlich simpel. danke euch beiden :-)

mfg

kurt
Antworten