且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

修改注册表后不重启计算机边生效(转)

更新时间:2022-10-04 16:53:29

修改注册表后不重启计算机边生效。

const int WM_SETTINGCHANGE = 0x001A;
const int HWND_BROADCAST = 0xffff;

IntPtr result1;

public enum SendMessageTimeoutFlags : uint
{
SMTO_NORMAL = 0x0000,
SMTO_BLOCK = 0x0001,
SMTO_ABORTIFHUNG = 0x0002,
SMTO_NOTIMEOUTIFNOTHUNG = 0x0008
}

[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr SendMessageTimeout(
IntPtr windowHandle,
uint Msg,
IntPtr wParam,
IntPtr lParam,
SendMessageTimeoutFlags flags,
uint timeout,
out IntPtr result
);

public void ChangeReg()
{
//通知所有打开的程序注册表以修改
SendMessageTimeout(new IntPtr(HWND_BROADCAST), WM_SETTINGCHANGE, IntPtr.Zero, IntPtr.Zero, SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out result1);
}



本文转自 不得闲 博客园博客,原文链接:http://www.cnblogs.com/DxSoft/archive/2010/12/01/1893882.html   ,如需转载请自行联系原作者