screenauflösung herausfinden

Anfängerfragen zum Programmieren mit PureBasic.
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

screenauflösung herausfinden

Beitrag von Brügge »

HI!

ich arbeite gerade an einer kleinen LIB, die die 3D Camera verbessern soll.
alles funktioniert im moment super! (aber nur mit 1024*768) wie bekomme ich heraus welche auflösung man gerade verwendet?

MFG brügge
Abgeschlossene games: No Name Game (NNG) Download-Link:
http://web56.login-1.loginserver.ch/eas ... 2125104111
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

In der Doku gibts ein eigenes Kapitel "Desktop" ;)

DesktopHeight()
DesktopWidth()
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

Beitrag von Brügge »

thx für die schnelle antwort

aber DesktopHeight() und DesktopWidth() haben doch nichts mit der screen zu tun...

(wenn ich ein fenster öffne und eine screen einbaue, bringen mir die Befehle flasche informationen)

oder irr ich mich?
Abgeschlossene games: No Name Game (NNG) Download-Link:
http://web56.login-1.loginserver.ch/eas ... 2125104111
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Dafür gibt es keinen nativen Befehl aber mittels ASM ist es möglich:

Code: Alles auswählen

Procedure ScreenWidth()
	!extrn _PB_Screen_Width
	!MOV eax, [_PB_Screen_Width]
	ProcedureReturn
EndProcedure

Procedure ScreenHeight()
	!extrn _PB_Screen_Height
	!MOV   eax, [_PB_Screen_Height]
	ProcedureReturn
EndProcedure
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

>(wenn ich ein fenster öffne und eine screen einbaue, bringen mir die Befehle flasche informationen)

Sag mal wenn du das machst ?, dann weist du doch wie groß der Screen ist den du da aufmachst :freak:

Den Befehl den ich gerne verwende ist ein API:

Code: Alles auswählen

GetSystemMetrics_(0) ; Breite
GetSystemMetrics_(1) ; Höhe
falls die Desktop-Befehle wirklich quatsch ausgeben, was ich aber bezweifel
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

Beitrag von Brügge »

woow!

vielen dank!!!

alles klappt! thx
Abgeschlossene games: No Name Game (NNG) Download-Link:
http://web56.login-1.loginserver.ch/eas ... 2125104111
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

Beitrag von Brügge »

@stargate

ich arbeite an einer LIB... ich habe ka was der benutzer für ne screen nutzt...

aber jetzt gehts! thx
Abgeschlossene games: No Name Game (NNG) Download-Link:
http://web56.login-1.loginserver.ch/eas ... 2125104111
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Also was jetzt, doch Desktop oder wie? Und was soll der Unfug mit API? Scholly hat doch geschrieben wie mann Breite und höhe ermittelt.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

Beitrag von Brügge »

ich brauche nur die screengröße (bei openwindowedscreen() kann man ja auch unnormale screengrößen angeben, die muss ich herausbekommen...
Abgeschlossene games: No Name Game (NNG) Download-Link:
http://web56.login-1.loginserver.ch/eas ... 2125104111
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wenn du eine Lib schreibst, wo du diese info brauchst,
dann kannst du auch einen befehl schreiben um Open(Windowed)Screen zu wrappen,
der das format dann zwischenspeichert, sprich, in Lib-internen Variablen ablegt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten