zoukankan      html  css  js  c++  java
  • 如何修改注册表立刻生效【搜藏】

    前两种不知什么原因,改了注册表之后,即使刷新并发送一个通知其他窗口的消息,但是依然不能立即生效,
    最后一种最简单有效,但是修改之后,只是程序运行时为程序设置的默认值,程序一旦退出就会还原。

    如设置一种文件类型的图标和默认的打开程序后怎么让设置马上生效。

    //-----------------------方法一----------------------------
    [DllImport("user32.dll", EntryPoint="SendMessage")] 
    public static extern int SendMessage ( 
    int hwnd, 
    int wMsg, 
    int wParam, 
    int lParam 
    ); 

    public const int HWND_BROADCAST = 0xFFFF
    public const int WM_SETTINGCHANGE = 0x1A


    //修改后发送一个消息给系统 
    SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 00); 

    //-----------------------方法二----------------------------
    IntPtr result1;

            
    // SendMessageTimeout tools
            [Flags]
            
    public enum SendMessageTimeoutFlags : uint
            {
                SMTO_NORMAL 
    = 0x0000,
                SMTO_BLOCK 
    = 0x0001,
                SMTO_ABORTIFHUNG 
    = 0x0002,
                SMTO_NOTIMEOUTIFNOTHUNG 
    = 0x0008
            }
            
    const int WM_SETTINGCHANGE = 0x001A;
            
    const int HWND_BROADCAST = 0xffff;

            [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
               );
    //调用
    SendMessageTimeout(
                         
    new IntPtr(HWND_BROADCAST), 
                         WM_SETTINGCHANGE, 
                         IntPtr.Zero, 
                         IntPtr.Zero,
                         SendMessageTimeoutFlags.SMTO_NORMAL,
                         
    1000,
                         
    out result1);

    //-----------------------方法三----------------------------
    //修改系统鼠标的双击速度,经实践,该方法可用
    const uint ULNTERVAL = 400;

    [DllImport(
    "user32")]
    public static extern bool SetDoubleClickTime(uint ulnterval);

    //调用
    SetDoubleClickTime(ULNTERVAL);
  • 相关阅读:
    [IOS+PHP Jason格式的发送与解析]
    SQL查询排序某字段并选前N条数据
    [IOS Tableview] cell自定义view显示错误问题
    [IOS多线程]的使用:防止进行HTTP数据请求时,UI卡死。
    [IOS NSUserDefaults]的使用:登陆后不再显示登录界面。
    Rafy框架
    jmeter压测-负载配置
    定时任务的实现方式
    Storm学习笔记
    Java线程池的实现
  • 原文地址:https://www.cnblogs.com/linyc/p/1502551.html
Copyright © 2011-2022 走看看