读书人

怎样使注册表修改马上生效?解决思路

发布时间: 2012-03-19 22:03:05 作者: rapoo

怎样使注册表修改马上生效?
修改完注册表后,怎样才能让它马上生效无须重启?手工可以结束explorer进程然后再开启能生效。
在程序中怎样才能搞定?就像组策略编辑器一样,点击应用就马上生效啊。

[解决办法]
注销一下应该就可以了吧.
[解决办法]
首先注册表修改是马上生效的.

你所说的生效,只是让读取注册表中值的程序再重新读一遍.
所以你想要实现的就是能够让读注册表的程序都重新加载.
[解决办法]
// 注销代码
HANDLE hToken;
TOKEN_PRIVILEGES tkp;

// Get a token for this process.

if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return( FALSE );

// Get the LUID for the shutdown privilege.

LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);

tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

// Get the shutdown privilege for this process.

AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);

if (GetLastError() != ERROR_SUCCESS)
return FALSE;

// Shut down the system and force all applications to close.

if (!ExitWindowsEx(EWX_LOGOFF | EWX_FORCE, 0))
return FALSE;

读书人网 >VC/MFC

热点推荐