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

How to detect if developer mode is active on windows 10?

ID3D12Device::SetStablePowerState函数调用只有在系统开启开发者模式的情况下才可用。如果不是,它会触发设备移除。

是否有API检测开发者模式是否开启,到目前为止我在msdn上没有发现任何允许应用程序查询的内容。

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

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;
}