Code : Tout sélectionner
#DMDO_DEFAULT = 0
#DMDO_90 = 1
#DMDO_180 = 2
#DMDO_270 = 3
#DISP_CHANGE_BADDUALVIEW = -6
Structure _DEVMODE
dmDeviceName.c[#CCHDEVICENAME]
dmSpecVersion.w
dmDriverVersion.w
dmSize.w
dmDriverExtra.w
dmFields.l
padding1.w
padding2.l
StructureUnion
dmOrientation.w
dmPaperSize.w
dmPaperLength.w
dmPaperWidth.w
dmScale.w
dmCopies.w
dmDefaultSource.w
dmPrintQuality.w
EndStructureUnion
StructureUnion
dmPosition.POINT
dmDisplayOrientation.l
dmDisplayFixedOutput.l
EndStructureUnion
dmColor.w
dmDuplex.w
dmYResolution.w
dmTTOption.w
dmCollate.w
dmFormName.c[#CCHFORMNAME]
dmLogPixels.w
dmBitsPerPel.l
dmPelsWidth.l
dmPelsHeight.l
StructureUnion
dmDisplayFlags.l
dmNup.l
EndStructureUnion
dmDisplayFrequency.l
dmICMMethod.l
dmICMIntent.l
dmMediaType.l
dmDitherType.l
dmReserved1.l
dmReserved2.l
dmPanningWidth.l
dmPanningHeight.l
EndStructure
Procedure ChangeDisplayOrientation(nOrientation)
dm._DEVMODE
ZeroMemory_(@dm, SizeOf(dm))
dm\dmSize = SizeOf(dm)
dm\dmFields = #DM_DISPLAYORIENTATION | #DM_PELSWIDTH | #DM_PELSHEIGHT
If EnumDisplaySettingsEx_(#Null, #ENUM_CURRENT_SETTINGS, @dm, #Null)
Debug dm\dmDisplayOrientation
Debug dm\dmBitsPerPel
Debug dm\dmPelsWidth
Debug dm\dmPelsHeight
Debug dm\dmDisplayFrequency
Debug "------------------------"
dmPelsWidth = dm\dmPelsWidth
dm\dmPelsWidth = dm\dmPelsHeight
dm\dmPelsHeight = dmPelsWidth
Select nOrientation
Case #DMDO_DEFAULT
dm\dmDisplayOrientation = #DMDO_DEFAULT
Case #DMDO_90
dm\dmDisplayOrientation = #DMDO_90
Case #DMDO_180
dm\dmDisplayOrientation = #DMDO_180
Case #DMDO_270
dm\dmDisplayOrientation = #DMDO_270
Default
ProcedureReturn -1
EndSelect
lReturn = ChangeDisplaySettingsEx_(#Null, @dm, #Null, #CDS_RESET, #Null)
EndIf
EndProcedure
Procedure.s TestReturnCode(lReturn)
Result.s = #NULL$
Select lReturn
Case #DISP_CHANGE_SUCCESSFUL : Result = "DISP_CHANGE_SUCCESSFUL"
Case #DISP_CHANGE_RESTART : Result = "DISP_CHANGE_RESTART"
Case #DISP_CHANGE_FAILED : Result = "#DISP_CHANGE_FAILED"
Case #DISP_CHANGE_BADMODE : Result = "DISP_CHANGE_BADMODE"
Case #DISP_CHANGE_NOTUPDATED : Result = "DISP_CHANGE_NOTUPDATED"
Case #DISP_CHANGE_BADFLAGS : Result = "DISP_CHANGE_BADFLAGS"
Case #DISP_CHANGE_BADPARAM : Result = "DISP_CHANGE_BADPARAM"
Case #DISP_CHANGE_BADDUALVIEW : Result = "DISP_CHANGE_BADDUALVIEW"
EndSelect
ProcedureReturn Result
EndProcedure
;Rotation du moniteur à 180°
lReturn = ChangeDisplayOrientation(#DMDO_90)
lReturn = ChangeDisplayOrientation(#DMDO_180)
;Retour à la normale aprés 10 secondes
Delay(10000)
lReturn = ChangeDisplayOrientation(#DMDO_90)
lReturn = ChangeDisplayOrientation(#DMDO_DEFAULT)