想用api函数读取一个键值,比如
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule\Start的值,请问如何读取?

解决方案 »

  1.   

    假如 Start就是楼主需要读的键值
    HKEY hKey;
    char szKeyBuf[1024] ;
    strcpy(szKeyBuf, "SYSTEM\\CurrentControlSet\\Services\\Schedule");
    long lResult = RegCreateKeyEx(HKEY_LOCAL_MACHINE ,
            szKeyBuf,
            0, NULL, REG_OPTION_NON_VOLATILE,
            KEY_ALL_ACCESS, NULL,
            &hKey, NULL) ;
    BYTE szValue[100];
    if( lResult==ERROR_SUCCESS)
    {
     RegSetValueEx(hKey, "Start", 0, REG_SZ,
                szValue,
                100 ;
    } RegCloseKey(hKey) ;
      

  2.   

    如果我没看错的话楼上的实现创建一个项,再写键值。可是我是指该键已存在的情况下读取start的键值啊。
      

  3.   

    DWORD
    WINAPI
    GetProfileString(
        LPCWSTR lpAppName,
        LPCWSTR lpKeyName,
        LPCWSTR lpDefault,
        LPWSTR lpReturnedString,
        DWORD nSize
        );
      

  4.   

    LONG RegOpenKeyEx(
      HKEY hKey,
      LPCTSTR lpSubKey,
      DWORD ulOptions,
      REGSAM samDesired,
      PHKEY phkResult
    );LONG RegQueryValueEx(
      HKEY hKey,
      LPCTSTR lpValueName,
      LPDWORD lpReserved,
      LPDWORD lpType,
      LPBYTE lpData,
      LPDWORD lpcbData
    );
      

  5.   

    先RegOpenKeyEx打开HKEY_LOCAL_MACHINE主键下的SYSTEM\CurrentControlSet\Services\Schedule键,再RegQueryValueEx取start的值,最后RegCloseKey。