程序代码实现启用或禁用Windows 8.1 Tablet的自己主动旋转功能
方法一:使用SetDisplayAutoRotationPreferences函数功能
#include <Windows.h> /* typedef enum ORIENTATION_PREFERENCE { ORIENTATION_PREFERENCE_NONE = 0x0, ORIENTATION_PREFERENCE_LANDSCAPE = 0x1, ORIENTATION_PREFERENCE_PORTRAIT = 0x2, ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED = 0x4, ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED = 0x8 }ORIENTATION_PREFERENCE; */ typedef BOOL (WINAPI *pSDARP)(ORIENTATION_PREFERENCE orientation); pSDARP pARP; int main(int argc, char* argv[]) { pARP = (pSDARP) GetProcAddress( GetModuleHandle(TEXT("user32.dll")), "SetDisplayAutoRotationPreferences"); if( pARP ){ if (atoi(argv[1]) == 0){ pARP( (ORIENTATION_PREFERENCE)(ORIENTATION_PREFERENCE_LANDSCAPE | ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED) ); } if (atoi(argv[1]) == 1){ pARP( (ORIENTATION_PREFERENCE)(ORIENTATION_PREFERENCE_NONE) ); } }else{ printf("System not supported. "); return 1; } return 0; }方法二:通过写入注冊表Enable来设置。
1表示启用自己主动旋转,0为禁止自己主动旋转
详细Key的位置例如以下:
KEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionAutoRotation