首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

修改注册表立即生效——通过修改注册表实现隐藏盘符解决思路

2012-05-24 
修改注册表立即生效——通过修改注册表实现隐藏盘符各位csdn朋友本人目前实现自动隐藏插入U盘盘符功能。找到

修改注册表立即生效——通过修改注册表实现隐藏盘符
各位csdn朋友
  本人目前实现自动隐藏插入U盘盘符功能。
找到的方法通过修改注册表方法实现隐藏磁盘盘符,并且实现此方法。
但是存在修改注册表后,必须重新启动explorer.exe进程的方法才可以使其修改立即生效,此种方法杀掉系统进程影响到其它程序运行。
希望找到其它方法实现此功能?找到一个通过sendmessagetimeout方法但是不好用不知是何原因。请哪位朋友给予指点谢谢!
全部代码如下:
int MAX_SIZE =100;
HKEY hKey;
char szBuf[80];
DWORD dwDword;
long lRet;

lRet = RegOpenKeyEx(HKEY_CURRENT_USER,
"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
0,
KEY_ALL_ACCESS,
&hKey);
if (lRet !=ERROR_SUCCESS)
{
return;

DWORD bt[26];
memset(bt,0,sizeof(bt));//初始化数组内存
bt[0]=0x00000000;//0
bt[1]=0x00000002;//B
bt[2]=0x00000004;//C
bt[3]=0x00000008;//D
DWORD dwSize=4;
RegSetValueEx(hKey,
"NoDrives",
0,
REG_DWORD,
(LPBYTE) &bt[0]
,sizeof(DWORD));
RegCloseKey(hKey);
  // FlashSystem();
DWORD dwResult;
DWORD valueError =SendMessageTimeout
(HWND_BROADCAST,
WM_SETTINGCHANGE, 
0,
LPARAM("Explorer"),
SMTO_ABORTIFHUNG,
5000,
&dwResult);

[解决办法]
关注中
[解决办法]
帮顶..
不会
[解决办法]
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, LPARAM("Policy"), SMTO_ABORTIFHUNG, 5000, &dwResult);

热点排行