如何检测Windows 10上的开发者模式是否处于活动状态?

gal*_*p1n 5 windows-10 directx-12

ID3D12Device::SetStablePowerState函数调用仅在系统中打开开发人员模式时可用.如果没有,它会触发设备删除.

是否有一个API来检测开发人员模式是否打开,到目前为止我没有在msdn上发现允许应用程序查询它的任何内容.

gal*_*p1n 5

它看起来是一个简单的注册表键保存信息,这里有一个简单的函数来查询开发者模式状态.

bool IsDeveloperModeEnabled() {
  HKEY hKey;
  auto err = RegOpenKeyExW(HKEY_LOCAL_MACHINE,LR"(SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock)",0,KEY_READ,&hKey);
  if (err!=ERROR_SUCCESS)
     return false;
  DWORD value{};
  DWORD dwordSize = sizeof(DWORD);
  err = RegQueryValueExW(hKey,L"AllowDevelopmentWithoutDevLicense",0,NULL,reinterpret_cast<LPBYTE>(&value),&dwordSize);
  RegCloseKey(hKey);
  if (err!=ERROR_SUCCESS)
    return false;
  return value != 0;
}
Run Code Online (Sandbox Code Playgroud)