gpt4 book ai didi

c++ - 如何使用 C++ 获取机器 ID

转载 作者:行者123 更新时间:2023-11-28 00:49:51 33 4
gpt4 key购买 nike

我面临两个问题,一个大问题,一个小问题:)问题 #1:我无法从下面的路径读取机器 ID ...我得到我的处理器名称像 intel i7 @2.2ghz 那样,我不知道为什么,我应该得到机器 ID,长整数字符串但我不明白, 所以请帮忙

  reg_path="SOFTWARE\\Microsoft\\Cryptography";    
rvalue="MachineGuid"; // data value

我的注册阅读功能

   string read_reg_sz(char rpath[],char rdata[])    // read registery Loaction
{
REGSAM flag = KEY_WOW64_32KEY or KEY_WOW64_64KEY;
char buffer[MAX];
char Buffer[MAX];
DWORD BufSize = _MAX_PATH;
char dwMHz[MAX];
DWORD dataType = REG_SZ;
HKEY hKey;
long lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE,rpath,NULL, KEY_READ | KEY_WRITE | flag,&hKey);
if(lError != ERROR_SUCCESS)
{// if the key is not found, tell the user why:
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
lError,
0,
Buffer,
_MAX_PATH,
0);
cout<<"\n reg erro : "<<Buffer;
return "N/A";
}
// query the key:
RegQueryValueEx(hKey,rdata,NULL,&dataType,(LPBYTE) &dwMHz,&BufSize);
RegCloseKey(hKey); // close open handle ....
cout<<"\n reg data read: "<<dwMHz;
return dwMHz;
}

第二个问题:目前我有可以完全清理回收站的功能:)

SHEmptyRecycleBin(NULL, NULL, SHERB_NOCONFIRMATION | SHERB_NOPROGRESSUI | SHERB_NOSOUND); 

但是我想从回收站中删除单个文件,比如传递文件名

最佳答案

你真的应该把它作为两个不同的问题发布,但我会尽量回答这两个问题。

1。获取 MachineGuid

我认为您的问题出在这一行:

    // query the key:
RegQueryValueEx(hKey,rdata,NULL,&dataType,(LPBYTE) &dwMHz,&BufSize);

你应该把它改成:

    // query the key:
RegQueryValueEx(hKey,rvalue,NULL,&dataType,(LPBYTE) &dwMHz,&BufSize);

顺便说一句,dhMHz 听起来不像是正确的变量名称 - 更改它以反射(reflect)现实。

另外,你应该有这个:

 DWORD BufSize = sizeof(Buffer) - 1;

而且,最好不要同时拥有 bufferBuffer 变量。

2。从回收站中删除一个文件

根据微软documentation在 SHFileOperation 上,你应该只使用 DeleteFile文件名如 C:\$Recycle.Bin\file.txt:

  • 当用于删除文件时,除非您在 lpFileOp 指向的 SHFILEOPSTRUCT 结构的 fFlags 成员中设置 FOF_ALLOWUNDO 标志,否则 SHFileOperation 会永久删除该文件。设置该标志会将文件发送到回收站。 如果您只想删除一个文件并保证它不在回收站中,请使用 DeleteFile

关于c++ - 如何使用 C++ 获取机器 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14683834/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com