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

VC中通过修改注册表来修改Path后的奇怪有关问题

2013-09-29 
VC中通过修改注册表来修改Path后的奇怪问题使用VC里修改注册表的API修改了:HKEY_CURRENT_USER\Environment

VC中通过修改注册表来修改Path后的奇怪问题
使用VC里修改注册表的API修改了:
HKEY_CURRENT_USER\Environment\Path
HEKY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path
这两个键值来修改Path路径。
使用系统自带的RegEdit查看,键值的确都修改了。但是使用cmd来看时却有点问题。
以管理员权限运行cmd后,echo %path%
可以看到Path路径正常修改了。
但是直接运行cmd,不以管理员权限,则显示的Path还是之前没有修改的。
通过 计算机-属性-高级系统设置-环境变量 里查看,Path也是修改了的。这个时候如果点一下环境变量修改页面的确定按钮,此时Path才会对普通模式下的cmd生效。

这意味着我的程序里面缺少对当前用户环境的刷新,请问这个有什么办法来做么?
[解决办法]
需加上这几句:
Dword dwResult=0;
PostMessage(HWND_BROADCAST, WM_SETTINGCHANGE , NULL, NULL);
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE , NULL,?
(LPARAM)"Environment",SMTO_NORMAL, 1000, &dwResult);
SendMessageTimeout(HWND_BROADCAST,
WM_SETTINGCHANGE , NULL, (LPARAM)"Environment", SMTO_NOTIMEOUTIFNOTHUNG,1000, &dwResult);

热点排行