c# 修改注册表后不重启计算机生效

来源:互联网 发布:js div点击事件 编辑:程序博客网 时间:2024/05/23 00:02

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

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); 
}