使用脚本通过修改注册表来更改桌面设置后,不会立即生效,调用以下命令即可立即刷新用户桌面设置:RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters

VC++中使用UpdatePerUserSystemParameters函数:
 
void UpdatePerUserSystemParameters()
{
    typedef void (__stdcall *PFN_UpdatePerUserSystemParameters)(DWORD dw1, BOOL bEnable);
 
    HMODULE hUser32Dll=LoadLibrary(_T("User32.dll"));
    if (hUser32Dll!=NULL)
    {
        PFN_UpdatePerUserSystemParameters fnUpdatePerUserSystemParameters=
            (PFN_UpdatePerUserSystemParameters)GetProcAddress(hUser32Dll,_T("UpdatePerUserSystemParameters"));
        if (fnUpdatePerUserSystemParameters!=NULL)
        {
            fnUpdatePerUserSystemParameters(0,TRUE);
        }
 
        FreeLibrary(hUser32Dll);
    }  
}

附:举例说明定义函数指针的方法,对照一下区别就明白了。
有函数:int add(int a,int b);
则对应函数指针为:int (*lpfn_add)(int a,int b);
对应typedef为:typedef int (*PFN_add)(int a,int b);

 


本文链接地址: 用UpdatePerUserSystemParameters立即刷新用户桌面设置
https://blog.qingfengju.com/index.asp?id=123

上一篇: 用.manifest文件使MFC编译的程序支持XP样式
下一篇: 2009年07月22日日全食观测全攻略

分类:Win32/C++ 查看次数:10061 发布时间:2009/7/14 23:59:59