如何在windows8中通过Regetry或ACPI获取屏幕自动旋转的状态(禁用或启用)?
我需要禁用屏幕自动旋转,我将使用winkey +O来更改屏幕自动旋转控件。
有没有人有过类似的经历?
发布于 2013-04-23 14:35:12
如果您想要更改自动旋转状态,下面的内容可能会有所帮助:
//C++
typedef BOOL (WINAPI* SETAUTOROTATION)(BOOL bEnable);
SETAUTOROTATION SetAutoRotation = (SETAUTOROTATION)GetProcAddress(GetModuleHandle(TEXT("user32.dll")), (LPCSTR)2507);
if(SetAutoRotation != NULL)
{
SetAutoRotation(TRUE);
}或
//C#
[DllImport("user32.dll", EntryPoint = "#2507")]
extern static bool SetAutoRotation(bool bEnable);
SetAutoRotation(true);发布于 2012-06-18 11:08:22
我找到了答案。
public enum tagAR_STATE : uint
{
AR_ENABLED = 0x0,
AR_DISABLED = 0x1,
AR_SUPPRESSED = 0x2,
AR_REMOTESESSION = 0x4,
AR_MULTIMON = 0x8,
AR_NOSENSOR = 0x10,
AR_NOT_SUPPORTED = 0x20,
AR_DOCKED = 0x40,
AR_LAPTOP = 0x80
}
[DllImport("user32.dll")]
public static extern bool GetAutoRotationState(ref tagAR_STATE input);希望能对其他人有所帮助。
发布于 2014-11-04 20:06:14
This MSDN example似乎完成了这项工作,使用了一个看起来像“官方”API调用的SetDisplayAutoRotationPreferences,它在User32.dll中(而不是示例中所说的kernel.dll ),并在WinUser.h中定义。
与其他建议相比,此示例的优势在于它首先检查是否支持并首先启用自动旋转。
https://stackoverflow.com/questions/10793108
复制相似问题