创建GUID并将其注册到注册表中

时间:2014-11-22 20:19:36

标签: c++

我尝试使用CoCreateGuid创建GUID,我想使用RegSetValueEx将此guid添加到注册表中。

我不是一个好的程序员,但我正在学习它。我尝试了一些方法,但总是遇到任何错误。 所以我想问一下这里的人是否可以帮我解决这个问题,将一个guid注册到注册表中的一个密钥。 如果有人可以解决这个难题,我将非常感谢。 我看着WWW,但我没有找到任何东西,看起来像是一个修复。

在我忘记之前,我正在使用“Microsoft Visual Studio .Net 2003”版本7.1.3088,我需要使用这个旧版本,因为Dll是创建2004/2005。 (我知道这与我的问题没什么关系)

我的最后一次尝试就是这个(如果有人用另一种方式将创建的guid注册到注册表中的密钥,那么我也会感激不尽:-)):

GUID guid;
    unsigned char* StringUuid;
    if (CoCreateGuid(&guid) == S_OK){
        if (UuidToString(&guid, &StringUuid) == RPC_S_OK){
            RpcStringFree(&StringUuid) ;
        }
        else{
            FILE *openlog=fopen("log.txt","a"); //Add an error message
            if(openlog)
            {
                fprintf(openlog, "Error 2!");
            }
            fprintf(openlog,"\n");
            fclose(openlog);
        }
    }
    else{
            FILE *openlog=fopen("log.txt","a"); //Add an error message
            if(openlog)
            {
                fprintf(openlog, "Error 1!");
            }
            fprintf(openlog,"\n");
            fclose(openlog);
    }

    HKEY key;
    DWORD dwDisposition;
    if(RegCreateKeyEx(HKEY_LOCAL_MACHINE, 
        TEXT("SOFTWARE\\Test"), 
        0, 
        NULL, 
        0, 
        KEY_WRITE, 
        NULL, 
        &key, 
        &dwDisposition) == ERROR_SUCCESS)
    {
        long SetComm = RegSetValueEx(key, "test_one", 0, REG_SZ, (LPBYTE)StringUuid, strlen(StringUuid));
        if(SetComm == ERROR_SUCCESS){
            FILE *openlog=fopen("log.txt","a"); //Add positive message into file
            if(openlog)
            {
                fprintf(openlog, "[Successfully]: Writed!");
            }
            fprintf(openlog,"\n");
            fclose(openlog);
        }else{
            FILE *openlog=fopen("log.txt","a"); //Add failed message into file
            if(openlog)
            {
                fprintf(openlog, "[Successfully]: Error to Write!");
            }
            fprintf(openlog,"\n");
            fclose(openlog);
        }
        RegCloseKey(key);
    }

0 个答案:

没有答案