无忧启动论坛

标题: Win10PE 桌面图标如何取消自动排列 [打印本页]

作者: whyme22    时间: 2017-9-19 09:43
标题: Win10PE 桌面图标如何取消自动排列
本帖最后由 whyme22 于 2018-11-28 14:15 编辑

各位老大们,发现论坛里的PE很多是自动排列图标的,取消自动排列的PE比较少。

我是用鱼大提供的Sh搜索外置,加载了外置后,桌面一堆图标,又遇上自动排列图标,这就尴尬了。
有时候有文件想临时拖到桌面上放一下,结果自动排列了找半天找不到;
有时候拖一个文件放高了一点,直接把我的电脑的图标位置给占用了,我的电脑跑别的位置去了,这让强迫症怎么接受……

我试过监测注册表,然后右键菜单里取消自动排列图标的勾,但是没有发现注册表的改动,不知道是监测姿势不对,还是要修改替换文件
不知道论坛里的大师们有没有什么办法解决这个问题了,先谢谢了
作者: 2010hktk    时间: 2017-9-19 10:42
有人拼命去搞桌面图标自动排列
而又有人拼老命去掉自动排列
真是冰火两重天
作者: 不太想说话    时间: 2017-9-19 10:49
罪魁祸首都是因为桌面放太多图标眼花缭乱
作者: tegl    时间: 2017-9-19 11:15
自己百度一下
作者: 金    时间: 2017-9-19 11:39
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags\1\Desktop

在右侧找到 FFlags类型:REG_DWORD通过修改数据可以实现以下功能

0x40200225表示自动排列,网格对齐
0x40200224表示不自动排列,网格对齐
0x40200221表示自动排列,网格不对齐
0x40200220表示不自动排列,网格不对齐

这个项的权限好像一般的捕获软件捕获不到修改,所以无法对比
作者: 苏州本是    时间: 2017-9-19 12:41
简单的方法:
桌面空白处,点鼠标右键,移至[排列图标],可以看到[自动排列]和[对齐到网格],你自己决定勾选还是取消勾选。
作者: whyme22    时间: 2017-9-19 14:06
金 发表于 2017-9-19 11:39
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags\1\Desktop

在右侧找到 FFlags类型:REG_DWORD ...

太感谢金大了 解决了困扰我多时的问题 谢谢
作者: slore    时间: 2017-9-19 20:52
金 发表于 2017-9-19 11:39
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags\1\Desktop

在右侧找到 FFlags类型:REG_DWORD ...

不是权限的问题,不是右键菜单设置,这个值就变化的,修改的话是explorer内存中设置显示模式,正常退出的话,系统会保存,regshot就能检查到。
作者: vaf    时间: 2017-9-19 21:46
我不喜欢没箭头, 鱼目混珠, 真假难辨.
假的就是假的, 伪装需要剥去.
可有人偏把没箭头说成是美化.
我不认为这是美化.

作者: 令狐大虾    时间: 2017-9-20 08:22
slore 发表于 2017-9-19 20:52
不是权限的问题,不是右键菜单设置,这个值就变化的,修改的话是explorer内存中设置显示模式,正常退出的 ...

修改的话是explorer内存中设置显示模式
这句话如何理解?具体如何操作?
作者: slore    时间: 2017-9-20 10:23
本帖最后由 slore 于 2017-9-20 11:07 编辑
令狐大虾 发表于 2017-9-20 08:22
修改的话是explorer内存中设置显示模式
这句话如何理解?具体如何操作?


这么给你说吧,比如有个a.txt里面是abc,你用记事本notepad.exe打开,把
abc改成def,你看到的def是程序内存存储的数据,你不保存的话,a.txt文件里面还是abc。

同样的,explorer.exe启动的时候从注册表读取桌面显示设定,
然后呈现给你看,你可以右键菜单自己调节,然后关机(正常结束explorer.exe),
explorer.exe在退出是调用保存设定到注册表的方法,这样你就可以再开机按你
最后的设定显示图标了。

过程中的操作,都是临时的,所以注册表你监视不到,正常结束掉explorer进程,
让它触发 保存 操作就可以了。

如果用程序自己动态随时设定的话,
通过 GetDesktopWindow获得桌面句柄,再获取它的IShellView,IFolderView接口,
你就可以动态地随时修改显示状态。

  1. SetCurrentViewMode(大图标|小图标|列表|详细信息)
  2. SetCurrentFolderFlags(自动排列|对齐到网格)
复制代码


改变,需要重启生效的话,自己调用SaveStream,SaveViewState之类的方法就行了。
利用微软提供的程序接口的话,不用关系实际的注册表项目在什么地方。

GetCurrentViewMode()
https://msdn.microsoft.com/en-us/library/windows/desktop/bb762510(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/bb775618(v=vs.85).aspx

GetAutoArrange()
https://msdn.microsoft.com/en-us/library/windows/desktop/bb775576(v=vs.85).aspx
SetCurrentFolderFlags()
https://msdn.microsoft.com/en-us/library/windows/desktop/bb762508(v=vs.85).aspx

作者: 2012dfww    时间: 2017-9-20 18:09
金 发表于 2017-9-19 11:39
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags\1\Desktop

在右侧找到 FFlags类型:REG_DWORD ...

感谢金大我也有取消排列这个想法,终于解决了,做成注册表文件导入后一刷新explorer就立即显效,太棒了,想在问个问题,我用WinPE生成器 1.6版做的PE,explorer窗口的大小不能保存该如何解决?请有空指教下。
作者: 令狐大虾    时间: 2017-9-20 21:10
slore 发表于 2017-9-20 10:23
这么给你说吧,比如有个a.txt里面是abc,你用记事本notepad.exe打开,把
abc改成def,你看到的def是程 ...

谢谢!
作者: 金    时间: 2017-9-21 16:44
2012dfww 发表于 2017-9-20 18:09
感谢金大我也有取消排列这个想法,终于解决了,做成注册表文件导入后一刷新explorer就立即显效,太棒了, ...

这个Exp的问题还真没有研究过,不好意思 帮不到你
作者: 金    时间: 2017-9-21 16:47
slore 发表于 2017-9-19 20:52
不是权限的问题,不是右键菜单设置,这个值就变化的,修改的话是explorer内存中设置显示模式,正常退出的 ...

哈哈,感谢。这个我还没了解,还以为是regshot权限不够。
作者: 金    时间: 2017-9-21 16:52
slore 发表于 2017-9-20 10:23
这么给你说吧,比如有个a.txt里面是abc,你用记事本notepad.exe打开,把
abc改成def,你看到的def是程 ...

改变,需要重启生效的话,自己调用SaveStream,SaveViewState之类的方法就行了。
利用微软提供的程序接口的话,不用关系实际的注册表项目在什么地方。

请问下这句话所说的 “调用SaveStream,SaveViewState之类” , 这两个是API还是对象内的方法
可以作为修改刷新explorer之用吗,例如修改了Explorer样式需要关闭Explorer重启才能有效果。

又或者有其他函数可以实现 exolorer 不重启刷新设置吗, 先谢了
作者: slore    时间: 2017-9-21 19:15
金 发表于 2017-9-21 16:52
改变,需要重启生效的话,自己调用SaveStream,SaveViewState之类的方法就行了。
利用微软提供的程序接口 ...

说的有歧义,不好意思。直接调用SetCurrentFolderFlags就是不重启explorer生效的,不过我上面说了,
这种状态是内存状态,如果你强制结束explorer,在启动的话,还是旧的设置。

自己调用了SaveViewState方法的话,会保存当前设定到注册表,然后强杀explorer在启动也会用新的设置。
这2个对象是IShellFolderView的方法,需要用API先获取桌面对象,再调用,上面的SetCurrentFolderFlags也是一样的用法。

另外自己修改了注册表,发个全局广播,告诉所有程序,你有系统变更,如果explorer处理这个消息也会刷新,不过不是所有的设定都重新加载,比如显示扩展名之类的,explorer会处理,除了桌面,还有其他打开文件管理器窗口都要刷新,这个FFlags只是桌面的,估计不行。
作者: 2012hzy6420    时间: 2017-9-22 07:33
谢谢分享
作者: 金    时间: 2017-9-22 12:20
本帖最后由 金 于 2017-9-22 12:21 编辑
slore 发表于 2017-9-21 19:15
说的有歧义,不好意思。直接调用SetCurrentFolderFlags就是不重启explorer生效的,不过我上面说了,
这 ...


在不杀掉explorer情况下保存内存中设置到注册表再刷新。这个就是我像要的效果,可惜有些设置不行

而windows自己的设置窗口 设置后又可以实时刷新,谷歌 MSDN 百度 没有找到相关的介绍。 😔




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3