Laden...

Über Konsole Ausrichtung des Monitors ablesen und ändern

Erstellt von c#atriga vor 3 Jahren Letzter Beitrag vor 3 Jahren 833 Views
C
c#atriga Themenstarter:in
34 Beiträge seit 2018
vor 3 Jahren
Über Konsole Ausrichtung des Monitors ablesen und ändern

Gibt es die Möglichkeit über die Konsole folgende Einstellung auszulesen und zu ändern.

"Monitor Anzeige -> Anzeige und Skalierung ->Ausrichtung"

4.931 Beiträge seit 2008
vor 3 Jahren

Das sollte mit der WinAPI-Funktion GetDisplayAutoRotationPreferences (mit dem Enum ORIENTATION_PREFERENCE) funktionieren.

Für C# per P/Invoke in etwa so:


public enum ORIENTATION_PREFERENCE
{           
    NONE,    
    LANDSCAPE,    
    PORTRAIT,    
    LANDSCAPE_FLIPPED,    
    PORTRAIT_FLIPPED,
}

public partial class NativeMethods
{    
    /// Return Type: BOOL->int
    ///pOrientation: ORIENTATION_PREFERENCE*
    [System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint="GetDisplayAutoRotationPreferences")]
    [return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)]
    public static extern bool GetDisplayAutoRotationPreferences(ref ORIENTATION_PREFERENCE pOrientation);
}

(generiert mit "PInvoke Interop Assistant" s. mein Beitrag in Wie kann ich aus einer gescannten Datei das Gerät auslesen/ändern, das diese Datei gescannt hat?).

Edit: Überlesen, du möchtest ja auch (global) ändern, d.h. das wird etwas komplizierter: Changing Display Settings Programmatically (letzter Abschnitt "Changing the Screen Orientation", aber basierend auf den vorherigen).