AccueilCodes sourcesFreewaresArticlesRéponsesRechercheVotre avisNewsMon blogLiensContact
Samedi 01 Novembre 2025

Valid HTML 4.01 Transitional

126 codes sources48 articles77 news24 Liens15 avis9 réponses.
Comment modifier par programmation l'orientation de l'écran ?

Cette procédure permet de modifier l’orientation de l’écran d’un Mobile. Les paramètres sont : -1 ou 1 pour pivoter dans le sens des aiguilles d’une montre ou le sens inverse.

 

 
################################################"
Déclaration de la collection de procédure
 
DEVMODEW est une structure
        dmDeviceName est un tableau fixe de 64 entiers sans signe sur 1
        dmSpecVersion est un entier sur 2
        dmDriverVersion est un entier sur 2
        dmSize est un entier sur 2
        dmDriverExtra est un entier sur 2
        dmFields est un entier
        dmOrientation est un entier sur 2
        dmPaperSize est un entier sur 2
        dmPaperLength est un entier sur 2
        dmPaperWidth est un entier sur 2
        dmScale est un entier sur 2
        dmCopies est un entier sur 2
        dmDefaultSource est un entier sur 2
        dmPrintQuality est un entier sur 2
        dmColor est un entier sur 2
        dmDuplex est un entier sur 2
        dmYResolution est un entier sur 2
        dmTTOption est un entier sur 2
        dmCollate est un entier sur 2
        dmFormName est un tableau fixe de 64 entiers sans signe sur 1
        dmLogPixels est un entier sur 2
        dmBitsPerPel est un entier
        dmPelsWidth est un entier
        dmPelsHeight est un entier
        dmDisplayFlags est un entier
        dmDiplayFrequency est un entier
        dmDisplayOrientation est un entier
FIN

CONSTANT
        DMDO_DEFAULT = 0
        DMDO_90 = 1
        DMDO_180 = 2
        DMDO_270 = 4

                DM_DISPLAYORIENTATION = 0x00800000
        DM_DISPLAYQUERYORIENTATION = 0x01000000

                CDS_TEST = 0x00000002
        CDS_RESET = 0x40000000
        FIN

PUBLIC

CONSTANT
        sysOrientationPaysageDroitier = DMDO_90
        sysOrientationPortraitInversé = DMDO_180
        sysOrientationPaysageGaucher  = DMDO_270
        sysOrientationPortrait             = 0
FIN

###########################################################"
 
PROCEDURE SysOrientation(nSensOrientation = -1)

        MyDEVMODE est un DEVMODEW
        MyDEVMODE:dmSize = Dimension(MyDEVMODE)
        MyDEVMODE:dmFields = DM_DISPLAYQUERYORIENTATION

        // Vérifie si l'écran peut être tourné
        ChangeDisplaySettingsEx(&MyDEVMODE, Null, CDS_TEST)

        SI MyDEVMODE:dmDisplayOrientation = 0 ALORS
                // L'écran ne peut pas être tourné
                SI nSensOrientation = -1 ALORS
                        RENVOYER sysOrientationPortrait
                SINON
                        RENVOYER Faux
                FIN
        FIN

        MyDEVMODE:dmFields = DM_DISPLAYORIENTATION

                SI nSensOrientation = -1 ALORS

                        // Récupère le mode courant
                ChangeDisplaySettingsEx(&MyDEVMODE, Null, CDS_TEST)

                                // Renvoie le sens de l'écran
                SELON MyDEVMODE:dmDisplayOrientation
                        CAS DMDO_DEFAULT
                                RENVOYER sysOrientationPortrait
                        CAS DMDO_90
                                RENVOYER sysOrientationPaysageDroitier
                        CAS DMDO_180
                                RENVOYER sysOrientationPortraitInversé
                        CAS DMDO_270
                                RENVOYER sysOrientationPaysageGaucher
                        AUTRES CAS
                                RENVOYER sysOrientationPortrait
                FIN

                        SINON

                                // Vérifie si le sens passé en paramètre est correct
                SI PAS nSensOrientation DANS (sysOrientationPortrait, sysOrientationPaysageDroitier, sysOrientationPaysageGaucher, sysOrientationPortraitInversé) ALORS
                        RENVOYER Faux
                FIN

                                // Change le sens de l'écran
                MyDEVMODE:dmDisplayOrientation = nSensOrientation
                RENVOYER ChangeDisplaySettingsEx(&MyDEVMODE, Null, 0) = 0

        FIN
#################################################
 
//Procédure Pivot
PROCEDURE PRIVÉE ChangeDisplaySettingsEx(pDEVMODE, hWnd, Opération)
RENVOYER API("coredll", "ChangeDisplaySettingsEx", Null, pDEVMODE, hWnd, Opération, Null)

Liste des codes sources
®2006 - codel5g.com