0

C++ と win32 API を使用してプログラムでコンピューターにインストールされている ShellIconOverLayIdentifers の総数を確認する必要があります。

以下のパスの下にある識別子を確認して、合計数を取得できますか?

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers
4

1 に答える 1

1

RegQueryInfoKeyを使用できます

このコードはテスト済みで動作しています:

#include "stdafx.h"
#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
    LSTATUS lStat;
    HKEY hKey;
    DWORD dwSubKeys;

    lStat = RegOpenKeyExA(
            HKEY_LOCAL_MACHINE, 
            "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\explorer\\ShellIconOverlayIdentifiers",
            0L, KEY_READ | KEY_WOW64_64KEY, &hKey);
    if(lStat == ERROR_SUCCESS)
    {
        lStat = RegQueryInfoKeyA(
            hKey, NULL, NULL, NULL, 
            &dwSubKeys, NULL, NULL, 
            NULL, NULL,NULL, NULL, NULL);

        printf_s("Subkeys : %u\n", dwSubKeys);


        RegCloseKey(hKey);
    }
    return 0;
}

アップデート:

JChan の調査によると、64 ビット バージョンの Windows では次のキー アクセスが必要です。

KEY_READ | KEY_WOW64_64KEY

于 2012-08-15T19:21:28.040 に答える