int len = GetModuleFileName(hInst,ProcessName.GetBuffer(256),256);
if(len == 0)
{
MessageBox(NULL,"无法获取进程的当前目录","Error",0);
return;
}
ProcessName.ReleaseBuffer(len);
DWORD direcLen = ProcessName.GetLength() + 1;
LPBYTE direc = new BYTE[direcLen];
ZeroMemory(direc,direcLen);
ret = RegQueryValueEx(hKey,"VirtualDesk",0,0,direc,&direcLen);
//如果键不存在或者键长度与目前的值长度不匹配则添加新键
if((ret != ERROR_SUCCESS )|| (direcLen != ProcessName.GetLength()+1))
{
SetValue:
DWORD KeyLength = ProcessName.GetLength() + 1;
LPBYTE KeyValue = new BYTE[KeyLength];
ZeroMemory(KeyValue,KeyLength);
for(int i=0;i
KeyValue[i] = ProcessName[i];
KeyValue[ProcessName.GetLength()] = 0;
ret = RegSetValueEx(hKey,"VirtualDesk",0,REG_SZ,KeyValue,KeyLength);
delete []KeyValue;
}
else
{
//如果键的内容与当前值不匹配同样进行更改
for(int i=0;i
{