找回密码
 加入
搜索
查看: 2349|回复: 2

[效率算法] 请教:更改我的文档位置,如何立即生效?

[复制链接]
发表于 2012-8-5 12:01:34 | 显示全部楼层 |阅读模式
本帖最后由 hanz_200 于 2012-8-5 12:03 编辑

我的文档注册表:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
"Personal"="D:\\Prefiles\\Documents"
在更改了路径之后,鼠标右键点击我的文档属性,在目标文件夹内显示的仍然是未改之前的样子。
只有重启之后才能生效。

请教一下P大还有其他高手如何解决。

以下方法已经尝试过了,不好用。
1.
Func _BroadcastChange()
    Local Const $HWND_BROADCAST = 0xffff
    Local Const $WM_SETTINGCHANGE = 0x1a
    Local Const $SPI_SETNONCLIENTMETRICS = 0x2a
    Local Const $SMTO_ABORTIFHUNG = 0x2
      $bcResult = DllCall("user32.dll", "lresult", "SendMessageTimeout", _
        "hwnd", $HWND_BROADCAST, _
            "uint", $WM_SETTINGCHANGE, _
                "wparam", $SPI_SETNONCLIENTMETRICS, _
                    "lparam", 0, _
                        "uint", $SMTO_ABORTIFHUNG, _
                            "uint", 10000, _
                                "dword*", "success")
    If @error Then Return 0
     Return $bcResult[0]
 EndFunc ;==> _BroadcastChange()
2.
Func _Update_Explorer()
    Local $bOld = Opt("WinSearchChildren", True)
    Local $a = WinList("[CLASS:SHELLDLL_DefView]")
    For $i = 0 To UBound($a) - 1
        DllCall("user32.dll", "long", "SendMessage", "hwnd", $a[$i][1], "int", 0x111, "int", 28931, "int", 0)
    Next
    Opt("WinSearchChildren", $bOld)
EndFunc;==>_Update_Explorer
3.结束explorer进程
发表于 2012-8-5 13:16:46 | 显示全部楼层
注销 试过没
发表于 2012-8-5 16:39:35 | 显示全部楼层
试试这个。
DirMove (@MyDocumentsDir,"d:\我的文档")
如果出现新建文件需要按F5才会刷新出来的情况(其实出现这种情况是系统的原因,和改了我的文档 目录没什么关系)
1.进入主键[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Update]。
2.将二进制值“UpdateMode”改为“00 00 00 00”。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-27 16:20 , Processed in 0.091255 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表