scrRotate() - Bildschirmrotation

Veröffentliche deine funktionierenden Skripte und Funktionen

Moderator: jNizM

BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

scrRotate() - Bildschirmrotation

01 Mar 2021, 01:04

Wer schon immer mal ein altes Notebook als 'head(s)-up-display' (HUD) an die Zimmerdecke (oder als Rezeptstation unter den Küchenhängeschrank) nageln wollte ... :mrgreen:

Code: Select all

;  'scr(een)Rotate'-Funktion basierend auf Code von AHK-Mitglied 'malcev':
;	https://www.autohotkey.com/boards/viewtopic.php?p=384743#p384743
;	Parameter ...
;		Uhrzeitmodus:		3/6/9/12
;		Winkelgradmodus:	0/90/180/270/360
;		Richtungmodus:		o/r/u/l

F1::scrRotate(3)			; rotiert auf "3 Uhr"
F2::scrRotate(180)			; rotiert auf 180°
F3::scrRotate(9)			; rotiert auf "9 Uhr"
F4::scrRotate(360)			; rotiert auf 360°
F5::scrRotate("u")			; rotiert nach unten
F6::scrRotate("default")	; rotiert auf default position ("12 Uhr" AKA 0°/360°)
F7::scrRotate("d")			; rotiert auf d(efault) position ("12 Uhr" AKA 0°/360°)
F8::scrRotate()				; wirft 'parameter advise'-message aus.

scrRotate(param:="") {
	if param not in 0,3,6,9,12,90,180,270,360,default,d,o,r,u,l
		MsgBox % "Valid parameters are: 0/3/6/9/12/90/180/270/360/default/d/o/r/u/l"
	else {
		mode:=	(param=0) || (param=12)  || (param=360) || (param=o)?	DMDO_DEFAULT:=0
			:	(param=9) || (param=90)	 || (param=r)				?	DMDO_90		:=1 
			:	(param=6) || (param=180) || (param=u)				?	DMDO_180	:=2
			:	(param=3) || (param=270) || (param=l)				?	DMDO_270	:=3
			:	(param=default)										?	DMDO_DEFAULT:=0
			:	(param=d)											?	DMDO_DEFAULT:=0

		VarSetCapacity(DEVMODE, 220, 0)
		NumPut(220, DEVMODE, 68, "short")										; dmSize
		DllCall("EnumDisplaySettingsW", "ptr", 0, "int", -1, "ptr", &DEVMODE)

		width	:= NumGet(DEVMODE, 172, "uint")
		height	:= NumGet(DEVMODE, 176, "uint")

		NumPut(width, DEVMODE, 176, "int")
		NumPut(height, DEVMODE, 172, "int")
		NumPut(mode, DEVMODE, 84, "int")										; dmDisplayOrientation
		DllCall("ChangeDisplaySettingsW", "ptr", &DEVMODE, "uint", 0)
		}
	}
8-)

Return to “Skripte und Funktionen”

Who is online

Users browsing this forum: No registered users and 46 guests