【已解决】求高人解决关于刷新当前窗口的问题
本帖最后由 qq309266378 于 2012-7-12 12:23 编辑小弟初学Au3,想写个右键扩展工具。就是给右键添加显示隐藏扩展名的东东。注册表都改好了,可是不知道怎么刷新当前窗口,必须刷新一下才有效果。例如,点击显示扩展名,注册表已经改了,可是没显示扩展名,用鼠标刷新一下就出来了。事先声明F5之类的不管用。最好是用鼠标判断当前窗口空白地方点击鼠标右键然后刷新。。。求老大大们给个方案,学生找了好几天没解决,急! http://www.autoitx.com/forum.php?mod=viewthread&tid=27974 行不 回复 1# qq309266378
楼主这是刷新系统桌面吧
a大那个在刷新时是模拟了键盘操作:Send('+{F10}e'), 有一定局限性.
以前接触过点, 下面这个 DLL 管点用:
DllCall("shell32.dll", "none", "SHChangeNotify", "long", 0x8000000, "int", 0, "ptr", 0, "ptr", 0)
还可以用下面这个API:
#include <WinAPI.au3>
#include <WindowsConstants.au3>
_WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN) 回复 1# qq309266378
把标题修改一下吧,纯是误导他人! 本帖最后由 netegg 于 2012-7-5 03:51 编辑
回复 4# user3000
没试过,不过你那个貌似也没用吧,lz那个明显是要修改系统配置立即生效,光刷新桌面管用吗
而且也不是系统桌面,应该是'文件夹选项'修改选项后重启explorer进程的类似操作 本帖最后由 user3000 于 2012-7-5 08:22 编辑
回复user3000
没试过,不过你那个貌似也没用吧,lz那个明显是要修改系统配置立即生效,光刷新桌面管用吗 ...
netegg 发表于 2012-7-5 03:44 http://www.autoitx.com/images/common/back.gif
测试了下, 还真是这么回事, 我在3楼纯属胡言乱语了! 无效!
那算是 刷新系统资源管理器窗口?
网上搜寻好久, 未有结果.
又翻看了msdn 有关 SHChangeNotify 函数的说明.
奇怪了,在改变文件关联图标以及删除创建文件夹等等后, 用此函数能做到通知资源管理器刷新窗口, 似乎 显示隐藏扩展名 则做不来.
英文有限, 是我看不明白? 求达人前去一观, 下面是网址:
http://msdn.microsoft.com/en-us/library/bb762118(VS.85).aspx 回复 5# netegg 只要刷新,求刷新 回复 3# user3000 十分感谢老师,学生受教了! 回复 2# afan 多谢您给出的答案,au论坛的好心人还是很多的,感谢大伙! 为这个刷新问题我试过N多方法,最后也就Send有效,因为过程简短,稳定性还不错~ 回复 10# afan 请老师赐教…… 回复afan 请老师赐教……
qq309266378 发表于 2012-7-5 21:51 http://www.autoitx.com/images/common/back.gif
user3000在3#不是贴出来了吗? Send('+{F10}e') 成功了!感谢A大!,user3000……你们让我看到了新的希望…… 我是来打酱油的
页:
[1]