Seite 1 von 2

Screen drehen

Verfasst: 13.08.2023 01:06
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?

Re: Screen drehen

Verfasst: 13.08.2023 07:37
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.

Re: Screen drehen

Verfasst: 13.08.2023 10:48
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

Re: Screen drehen

Verfasst: 13.08.2023 13:42
von jacdelad
...aber eben nur den gesamten Bildschirm, nicht einzelne Fenster.

Re: Screen drehen

Verfasst: 13.08.2023 16:10
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? :)

Re: Screen drehen

Verfasst: 14.08.2023 00:10
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.

Re: Screen drehen

Verfasst: 14.08.2023 01:22
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.

Re: Screen drehen

Verfasst: 14.08.2023 12:52
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?

Re: Screen drehen

Verfasst: 14.08.2023 13:37
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.

Re: Screen drehen

Verfasst: 14.08.2023 15:37
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.