2016-12-19 5 views
2

ID3D12Device::SetStablePowerState L'appel de fonction n'est disponible que si le mode développeur est activé dans le système. Sinon, cela déclenche le retrait d'un périphérique.Comment détecter si le mode développeur est actif sur Windows 10?

Existe-t-il une API pour détecter si le mode développeur est activé, jusqu'à présent je n'ai rien trouvé sur msdn permettant à une application de l'interroger.

+1

[Ceci] (http://stackoverflow.com/questions/40033608/enable-windows-10-developer-mode-programmatically) peut vous aider. Ressemble à une chose de registre et peut être fait via PowerShell, alors peut-être que vous pourriez utiliser cette information pour construire votre propre méthode dans le code et poster comme une réponse. – Adrian

+0

@Adrian Oui, c'était aussi simple que ça, j'ai répondu à ma question pour référence ultérieure à qui pourrait en avoir besoin. – galop1n

Répondre

3

Il semble qu'une simple clé de registre contient les informations, ici une fonction simple pour interroger l'état du mode développeur.

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