Screen drehen

Für allgemeine Fragen zur Programmierung mit PureBasic.
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

Screen drehen

Beitrag von northstarex »

Hi

kann man mit PB den Windows-Bildschirm von Horizontal auf 90 drehen lassen?
Oder geht das sogar nur mit den PB Screens separat? So bräuchte man nicht den ganzen Win-Bildschirm drehen.

Gibt es da was?
Bild
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: Screen drehen

Beitrag von jacdelad »

Soweit ich weiß geht das nicht. PureBasic hat keinen Befehl um ein Fenster zu drehen und auch die Windows APIs geben da nichts her.
Per Windows APIs kannst du einzelne Bildschirme drehen, aber das musst du über die Bildschirm-Einstellungen erledigen.
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Screen drehen

Beitrag von RSBasic »

Es gibt beispielsweise SetDisplayAutoRotationPreferences_() und damit kannst du wohl die Bildschirm-Orientierung auf Landscape oder Portrait ändern.
Weitere Infos: https://learn.microsoft.com/en-us/windo ... references
Beispielcode: https://www.purebasic.fr/english/viewtopic.php?t=61669
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: Screen drehen

Beitrag von jacdelad »

...aber eben nur den gesamten Bildschirm, nicht einzelne Fenster.
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

Re: Screen drehen

Beitrag von northstarex »

ja, es geht um den gesamten Desktop- oder PB-Screen. Es gibt Anwendungen, die auf vertikalen Monitoren laufen. Um nicht alles per Programm einzeln zu drehen, wäre es Sinnvoll wenn der Screen einmal am Anfang gedreht wird. Es gibt Tatsache eine DOS Anwendung die das Desktop drehen erledigt. Diese könnte man mit ins PRG einbauen - wäre kein Ding. Aber es wäre natürlich eleganter, wenn das mit PB gehen würde.

Selbst in dem ArcadeEmulator MAME müssen die Spielebildschirme gedreht werden, weil viele Spiele nur auf vertikalen Monitoren gespielt werden. Da geschieht das aber in Mame selber ohne das Desktop zu drehen.

Bin da eben dran um so einen Screen-Anzeiger zu proggen. Nur das rotieren war halt ein Problem, was noch gelöst werden muss.Das anzeigen und mit arbeiten der nativen Auflösungen geht schon z.B. 480x680.

Bild

Bild


Na gut... man könnte alles erstmal horizonal erstellen lassen und danach 90grad kippen, so das eine vertikale Bildausgabe erzeugt wird. Aber wenn das mit dem vertikalen , ob nur der ganze Screen oder per Koordinaten-Drehung, schon vorher definiert wurde, dann wäre der Programmablauf schneller - belaubte ich mal.

So ein Rotate Befehl wäre noch mal was in PB, oder? :)
Bild
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: Screen drehen

Beitrag von jacdelad »

Aso, hatte ich falsch verstanden. Ich dachte du willst nur das in PureBasic erstellte Fensterchen drehen.
Nee, dann ist das was RSBasic geschrieben hat dein Ding.
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
northstarex
Beiträge: 103
Registriert: 25.08.2013 18:04
Computerausstattung: alles mögliche^^
Wohnort: Schöppenstedt
Kontaktdaten:

Re: Screen drehen

Beitrag von northstarex »

irgendwie werde ich aus dem Link/Post nicht schlau. Das Script bringt mir jetzt so auch nichts. Da schreibt wer was über eine Rotation.pb, aber irgendwie finde ich da nichts zur Ansicht oder download.
Bild
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: Screen drehen

Beitrag von jacdelad »

Hab mal reingeschaut, ich glaube da RSBasic auch was falsch verstanden. So wie ich das verstehe willst du einen Monitor um 90 Grad gedreht anbringen, aber erst das Programm von dir soll die Ausgabe darauf drehen? Das heißt, erstmal läuft alles normal, dann startet dein Programm und der Bildschirm wird gedreht. Wenn das Programm beendet wird, wird alles wieder auf normal gedreht?
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Screen drehen

Beitrag von RSBasic »

jacdelad hat geschrieben: 14.08.2023 12:52Das heißt, erstmal läuft alles normal, dann startet dein Programm und der Bildschirm wird gedreht. Wenn das Programm beendet wird, wird alles wieder auf normal gedreht?
Das kann das Programm ja selbst machen. Spiele sorgen ja auch selbst dafür, in welcher Auflösung das Spiel laufen soll.
Aber von Windows gibt es keine Option, sondern nur:
Bild

Daher gibt es nur diese Möglichkeit, selber per WinAPI-Funktion die Auflösung zu drehen, die ich oben vorgeschlagen habe.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
TroaX
Beiträge: 684
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
Wohnort: NRW
Kontaktdaten:

Re: Screen drehen

Beitrag von TroaX »

Einzelne Fenster lassen sich nicht separat drehen. MAME ist ein Emulator und zeichnet ein Spiel statt auf einen Bildschirm auf einer Softwareoberfläche (Surface). Dort kann MAME eine andere Ausrichtung simulieren. Es erschließt sich mir nicht der Sinn, warum der Desktop beim starten einer Anwendung gedreht werden sollte. Das drehen des Bildschirms ist generell unabhängig von der Anwendung. Es ist also logischer, den ganzen Desktop zu drehen. Und zwar automatisch, wenn es der Monitor unterstützt oder eben manuell, wenn der Monitor seine Ausrichtung nicht selbst erkennt und dem System melden kann. Dafür hat MS die Tastenkombinaionen Strg+Alt+Pfeiltaste bereitgestellt. Alternativ kannst du auch das CLI-Tool (nicht DOS ... das gibt es in Windows seit Dekaden nicht mehr!) verwenden und für die Ausrichtung Verknüpfungen anlegen. Oder wenn du den Monitor sowieso nie drehst, zentral in den Anzeige Einstellungen die Ausrichtung anpassen und einfach so lassen.

Wenn Fenster eine Mindestbreite unterhalb der vertikalen Auflösung unterstützen, funktionieren diese Fenster ohne Einschränkungen vertikal und werden entsprechend dargestellt. Spiele bieten (wenn nicht von den Entwicklern unterbunden), die Auflösungen mit vertauschten Proportionen an. Aktuell kann ich also das Problem nicht sehen, für das du eine Lösung brauchst.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Antworten