无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: slore
打印 上一主题 下一主题

[更新(2022/11/11) ModernUI回归] explorer再见,WinXShell你好!

    [复制链接]
121#
发表于 2016-5-12 16:40:53 | 只看该作者
回复

使用道具 举报

122#
发表于 2016-5-12 19:42:59 | 只看该作者
本帖最后由 xintiandi 于 2016-5-12 19:45 编辑

测试一下开始菜单,
1、点击开始菜单中的资源管理器,发现和explorer打开不一样。看截图,explorer中有控制面板的选项。

2、最近文档中的这2项。鼠标不能移上去,移到选定区就出错了。出错有2种提示,后面那个错误会导致pexlorer崩溃。



3、点击设置中的控制面板后,出现的不是控制面板界面。

下图才是应该出来的界面,但是不知道怎么出现的是上图。

点评

开始菜单不用试,ROS Explorer版本遗留下来一直没有修改。 目前的文件管理器其实就是你打开notpead点打开,弹出的 打开对话框界面, 这里不能选择控制面板的。用这个代替的优点是“稳定”。当然也有很多缺点,我  详情 回复 发表于 2016-5-12 22:16
回复

使用道具 举报

123#
发表于 2016-5-12 20:38:28 | 只看该作者
本帖最后由 xintiandi 于 2016-5-12 20:41 编辑
slore 发表于 2016-5-12 13:27
开始菜单准备自己重新做,或者修改第三方的程序让其可以工作。这个工具主要是给PE用的,正常系统只是测试 ...


系统是之前做好ghost上去的,不好提取出来。平时测试我们关机是正常的。都是用shutdown -f -s -t 0,
至于登录问题,可能和我们的登录界面有关,我们没有用windows自带的登录窗体,而是用的wes7自带的demo- Custom Logon。这个也许和wes7的特性有关,因为没有explorer,所以指定了登陆窗体后custom shell。
附件是5个自定义shell。

Custom Logon.rar

494.72 KB, 下载次数: 14, 下载积分: 无忧币 -2

回复

使用道具 举报

124#
 楼主| 发表于 2016-5-12 22:16:28 | 只看该作者
xintiandi 发表于 2016-5-12 19:42
测试一下开始菜单,
1、点击开始菜单中的资源管理器,发现和explorer打开不一样。看截图,explorer中有控 ...

开始菜单不用试,ROS Explorer版本遗留下来一直没有修改。

目前的文件管理器其实就是你打开notpead点打开,弹出的 打开对话框界面,
这里不能选择控制面板的。用这个代替的优点是“稳定”。当然也有很多缺点,我在首页有提到的。

WES7系统没怎么接触,你说的些东西不太懂,正在下载,看了下是英文+语言包形式的所以可能
工具菜单是英文的缘故。

你可以看到控制面板界面?那你直接运行“control”是否可以打开这个界面,如果可以的话,在
快速启动栏做一个control.exe的快捷方式好了。

登陆问题,下载了包里面有些代码,但是怎么用还不清楚。。。

至于你说的热键呼出维护,你可以试试在Windows目录下创建一个PExlorer.exe的快捷方式,
然后绑定热键。WES7下可以用否我得装了测试下,正常系统下是可以这么搞的。

点评

我们用的系统是中文的,cmd下control可以直接出来控制面板的界面,做个快捷方式就可以解决。提供附件的代码,要用vs编译,编译完成后生成一个对应的dll文件,将生成的那个dll文件拷贝到system32下,运行对应的文件夹  详情 回复 发表于 2016-5-13 11:58
回复

使用道具 举报

125#
发表于 2016-5-13 11:58:47 | 只看该作者
slore 发表于 2016-5-12 22:16
开始菜单不用试,ROS Explorer版本遗留下来一直没有修改。

目前的文件管理器其实就是你打开notpead点 ...

我们用的系统是中文的,cmd下control可以直接出来控制面板的界面,做个快捷方式就可以解决。提供附件的代码,要用vs编译,编译完成后生成一个对应的dll文件,将生成的那个dll文件拷贝到system32下,运行对应的文件夹的Register.reg进行注册,重启就可以看到效果了。当然win7,32位也是可以用的。热键呼出的问题,我用第三方软件解决。
回复

使用道具 举报

126#
发表于 2016-5-13 20:35:31 | 只看该作者
经过反复测试,登录只和wes7开启了custom shell有关,正常系统不会有这个问题。

点评

网上找了下,WES7没有个没shell的做好的小点的系统来测试。这部分还不太清楚。 感觉是custom shell检测到别的Shell存在,自己就登出了,然后重新登陆使用新shell。 你附件custom shell里面很多,你用的是那种?  详情 回复 发表于 2016-5-14 10:40
回复

使用道具 举报

127#
 楼主| 发表于 2016-5-14 10:28:42 | 只看该作者
解决使用文件打开对话框作为文件管理器时,新建文件夹,复制删除等操作不会及时刷新问题
原理,方法如下:

comdlg32.dll!CFileOpenSave::Show(struct HWND__ *)
  shell32.dll!SHChangeNotifyRegisterThread()
    shell32.dll!_SCNGetWindow()
      shell32.dll!_SCNGetWindow()
        shell32.dll!_GetDesktop(void) <- 获取桌面窗口,存在就将变化通知事件发送到桌面窗口处理
        ..
        shell32.dll!SCNInitialize()   <- 桌面窗口如果不存在,程序自己进行变化通知ChangeNotify事件处理

所以处理方法,让_GetDesktop()获取桌面窗口后,让程序认为不存在桌面窗口。
把je跳转语句(74)改为jmp常跳转指令(EB)。

_SCNGetWindow
00007FFF7E053608
...
00007FFF7E053643  e8 xx xx xx xx call        _GetDesktop (07FFF7DFBD95Ch)
00007FFF7E053648  48 85 c0       test        rax,rax
00007FFF7E05364B  74             je         _SCNGetWindow+6Ch (07FFF7E053674h)
                  74->EB ---> je->jmp


修改方法:
1.用UE或者Hex打开shell32.dll,搜索定位码
2(x64).找到定位码之后,看后面大概是 3f e8 xx xx xx xx xx 48 85 c0 74 <- 这个74就是关键跳转
2(x86).找到定位码之后,看后面大概是 38 e8 xx xx 00 00 85 c0 74       <- 这个74就是关键跳转
★应该只匹配1处,有多处的话,请告诉我版本号。
3.修改74为EB后,替换内核shell32.dll,则打开对话框将自动更新。

PExlorer.exe(RC2.3)是内存修改,只对PExlorer.exe的进程有效,好处是不改内核,
通过配置文件修改指定关键跳转地址即可。启动的notpead.exe等程序的打开无效。
如果直接更新内核shell32.dll,所有打开对话框都会自动更新。


  1. "::文件管理器":
  2.   {
  3.     "注释":"默认为false,自己手动刷新影响也不大,需要的人自己确定关键地址后设置为true",
  4.     "shell32_hacker":false,
  5.     "shell32x64_hacker_addr":"0xC8017",
  6.     "shell32x86_hacker_addr":"0x19BA5F"
  7.   }
复制代码


0xC8017 为Win10版本(x64 shell32.dll 10.0.10586.0)的关键跳转地址
0x19BA5F 为Win10版本(x86 shell32.dll 10.0.10586.0)的关键跳转地址
shell32.dll的版本不一样的话,偏移值可能不同,请修改配置文件。

关键跳转地址搜索例:
_SCNGetWindow
shell32.dll(x64)
文件偏移地址
              48 8b 00 48 83 c4 20 5b c3 83 fb 01 74 <- x64 定位码
0xF2A40       01 74 3f e8 14 a3 f6 ff 48 85 c0 74 27 48 8d 15
                                                                         0xF2A4B

__SCNGetWindow@4:
shell32.dll(x86)
文件偏移地址
             8b 00 5e 8b e5 5d c3 83 fe 01 74 <- x86 定位码
0x19AB00     e5 5d c3 83 fe 01 74 38 e8 0a 02 00 00 85 c0 74
                                                                                             0x19AB0F

点评

文件刷新是可以了,驱动盘还没有自刷新,比如挂载一个光驱盘符  详情 回复 发表于 2016-5-14 11:12
回复

使用道具 举报

128#
 楼主| 发表于 2016-5-14 10:40:20 | 只看该作者
xintiandi 发表于 2016-5-13 20:35
经过反复测试,登录只和wes7开启了custom shell有关,正常系统不会有这个问题。

网上找了下,WES7没有个没shell的做好的小点的系统来测试。这部分还不太清楚。
感觉是custom shell检测到别的Shell存在,自己就登出了,然后重新登陆使用新shell。

你附件custom shell里面很多,你用的是那种?我可以先看看代码。

点评

我制作了一个和我用的差不多的系统, 链接:http://pan.baidu.com/s/1o8EgM5k 密码:ob6u  详情 回复 发表于 2016-5-15 20:31
用的这个WindowSampleCredentialProvider  详情 回复 发表于 2016-5-14 20:40
用的这个WindowSampleCredentialProvider  详情 回复 发表于 2016-5-14 20:38
回复

使用道具 举报

129#
发表于 2016-5-14 11:12:51 | 只看该作者
slore 发表于 2016-5-14 10:28
解决使用文件打开对话框作为文件管理器时,新建文件夹,复制删除等操作不会及时刷新问题
原理,方法如下:
...

文件刷新是可以了,驱动盘还没有自刷新,比如挂载一个光驱盘符

点评

这个手动刷新下算了。要处理也不是不能,麻烦了点。这个操作相对于文件来说不常做。 先这样了,这个周末休息下哈。 下面的小问题先攒下吧。 气泡从Em拿来改,能出来是体力活。 网页视频全屏,启动个现成判断当  详情 回复 发表于 2016-5-14 11:32
回复

使用道具 举报

130#
 楼主| 发表于 2016-5-14 11:32:46 | 只看该作者
ljycslg 发表于 2016-5-14 11:12
文件刷新是可以了,驱动盘还没有自刷新,比如挂载一个光驱盘符

这个手动刷新下算了。要处理也不是不能,麻烦了点。这个操作相对于文件来说不常做。
先这样了,这个周末休息下哈。

下面的小问题先攒下吧。
气泡从Em拿来改,能出来是体力活。
网页视频全屏,启动个现成判断当前最上层窗口大小是否和屏幕一样,一样就隐藏就可以实现了。
回复

使用道具 举报

131#
发表于 2016-5-14 20:38:34 | 只看该作者
slore 发表于 2016-5-14 10:40
网上找了下,WES7没有个没shell的做好的小点的系统来测试。这部分还不太清楚。
感觉是custom shell检测 ...

用的这个WindowSampleCredentialProvider
回复

使用道具 举报

132#
发表于 2016-5-14 20:40:47 | 只看该作者
slore 发表于 2016-5-14 10:40
网上找了下,WES7没有个没shell的做好的小点的系统来测试。这部分还不太清楚。
感觉是custom shell检测 ...

用的这个WindowSampleCredentialProvider
回复

使用道具 举报

133#
发表于 2016-5-15 20:31:41 | 只看该作者
slore 发表于 2016-5-14 10:40
网上找了下,WES7没有个没shell的做好的小点的系统来测试。这部分还不太清楚。
感觉是custom shell检测 ...

我制作了一个和我用的差不多的系统,
链接:http://pan.baidu.com/s/1o8EgM5k 密码:ob6u
回复

使用道具 举报

134#
发表于 2016-5-16 11:11:49 | 只看该作者
真不错。继续努力啊
回复

使用道具 举报

135#
 楼主| 发表于 2016-5-20 00:43:00 | 只看该作者
可以使用自定义开始菜单 ClassicShell
首页为最新版4.2.5的测试截图,有点大3MB的DLL+1MB多的皮肤,ClassicShell1.0版本看了下300KB,基本的程序目录,控制面板和关机按钮,不过没有搜索,对Win10还需要改下5,6行代码才可以用。
回复

使用道具 举报

136#
发表于 2016-5-20 14:15:47 | 只看该作者
大神,不明觉厉。
回复

使用道具 举报

137#
发表于 2016-5-20 18:24:06 | 只看该作者
越来越完美了,支持下。
回复

使用道具 举报

138#
发表于 2016-5-23 02:06:13 | 只看该作者
支持原创大神
回复

使用道具 举报

139#
发表于 2016-6-29 17:31:46 来自手机 | 只看该作者
本帖最后由 四海皆狂龙 于 2016-6-29 17:37 编辑

我最近也研究了下,发现w7下托盘的部分程序的弹窗定位偏差大,但是xp却是正常的,结果我又试了下楼主的桌面,问题依旧,不知是什么问题。

点评

你的程序是不是老程序啊。托盘点击就是把消息回调给原程序,本身没做什么事情。可能WIN7之后,再消息的高位保存了什么信息,你的程序没有正确取出低位的信息啥的吧。 这个是程序的问题,你试试改变程序兼容性。  详情 回复 发表于 2016-7-1 10:00
回复

使用道具 举报

140#
发表于 2016-6-30 23:13:12 | 只看该作者
pexlorer桌面打开的进程环境变量不全,少了一些,进程要是用到环境变量就蒙了
TLB开始菜单打开的进程就正常

点评

还有你使用蓝色壁纸,任务栏用黑色[0,0,0]会好看点。。。  发表于 2016-7-1 11:33
话说新版应该可以用ClassicShell当开始菜单了,还使用TLB,有什么特别之处呢?  发表于 2016-7-1 11:32
你是改名叫wallpaperhost的,winpeshl.exe第一个启动的程序,你后面的*Desktop之类由PECMD创建的环境变量自然无法利用,要用PECMD的变量,改下名,放到TLB启动之前应该就可以了。  详情 回复 发表于 2016-7-1 09:43
回复

使用道具 举报

141#
 楼主| 发表于 2016-7-1 09:43:23 | 只看该作者
本帖最后由 slore 于 2017-4-3 01:28 编辑
ljycslg 发表于 2016-6-30 23:13
pexlorer桌面打开的进程环境变量不全,少了一些,进程要是用到环境变量就蒙了
TLB开始菜单打开的进程就正 ...


你是改名叫wallpaperhost的,winpeshl.exe第一个启动的程序,你后面的*Desktop之类由PECMD创建的环境变量自然无法利用,要用PECMD的变量,改下名,放到TLB启动之前应该就可以了。

=========2016/12/17============
处理环境变量广播通知,并增加2个调用接口
  • 在桌面启动时触发onStartUp接口调用
  • 环境变量变更时触发onEnvChanged接口调用

showflags(0-隐藏调用,1-正常显示,默认值为:1)和parameters参数可省略。
  "JS_DESKTOP":
  {
    "bkcolor":[0,122,204],
    "onStartUp": {
         "command": "app.exe",
         "showflags":1,
         "parameters":""
    },
    "onEnvChanged": {
         "command": "app.exe",
         "showflags":1,
         "parameters":""
    }
  }


=========2016/12/19============
处理环境变量广播通知,PE下ClassicShell的开始菜单1分钟后才响应的问题修正
ClassicShell不设置替换开始按钮的话,无法响应鼠标左右键点击,所以请使用3态开始按钮图标,
PExlorer的开始图标可配置为空,可根据自己选择的开始按钮图标设置右侧余白大小(下例的图标是40x120像素的,所以不需要设置偏移量,ClassicShell的标准贝壳图标的话,设置8像素会好看些)

  1.   "::开始菜单":
  2.   {
  3.     "start_icon":"empty",
  4.     "start_padding":8,
  5.     ...
  6.   }
复制代码






FYI
3态开始按钮图标制作说明
http://www.classicshell.net/tutorials/buttontutorial.html
论坛给出的一些图标例子
http://www.classicshell.net/foru ... 3b40e833d483ee1403c

=========2017/04/03============
右键支持%v参数,cmd,powershell不需要hook菜单了
支持自制“新建”二级菜单(只处理 WinXShell 项目)

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=386879

以后不需要的话,设置一个空定义。
  1.   "JS_DESKTOP":
  2.   {
  3.      ...
  4.      "cascademenu":{
  5.          "WinXNew":""
  6.      },
  7.      ...
  8.   }
复制代码


PExlorer_x64.zip

576.04 KB, 下载次数: 2, 下载积分: 无忧币 -2

WinXNew

PExlorer_x86.zip

502.07 KB, 下载次数: 1, 下载积分: 无忧币 -2

WinXNew

点评

了解,已解决  发表于 2016-7-1 11:14
回复

使用道具 举报

142#
 楼主| 发表于 2016-7-1 10:00:42 | 只看该作者
四海皆狂龙 发表于 2016-6-29 17:31
我最近也研究了下,发现w7下托盘的部分程序的弹窗定位偏差大,但是xp却是正常的,结果我又试了下楼主的桌面 ...

你的程序是不是老程序啊。托盘点击就是把消息回调给原程序,本身没做什么事情。可能WIN7之后,再消息的高位保存了什么信息,你的程序没有正确取出低位的信息啥的吧。

这个是程序的问题,你试试改变程序兼容性。

点评

经过调试已经搞定。另个问题是,任务栏程序右键菜单,有些程序创建菜单失败,比如火狐。大致是从窗口句柄,获取菜单,然后创建弹窗。  详情 回复 发表于 2016-7-1 19:34
回复

使用道具 举报

143#
发表于 2016-7-1 14:01:35 | 只看该作者
不知道是否支持TrueLaunchBar?那可是个好东西!如果能够集成它的上弹菜单功能那就太极品了!这将不仅仅成为替代品,而是必需品!
回复

使用道具 举报

144#
发表于 2016-7-1 19:34:32 | 只看该作者
slore 发表于 2016-7-1 10:00
你的程序是不是老程序啊。托盘点击就是把消息回调给原程序,本身没做什么事情。可能WIN7之后,再消息的高 ...

经过调试已经搞定。另个问题是,任务栏程序右键菜单,有些程序创建菜单失败,比如火狐。大致是从窗口句柄,获取菜单,然后创建弹窗。

点评

任务栏是有些问题,还有标题过长鼠标悬停,有时候悬浮提示会不见,主要的切换功能啥的OK就没管,最近也没有啥时间,对于维护必要的功能实现了就扔到一边做别的事了。  发表于 2016-7-2 10:16
回复

使用道具 举报

145#
发表于 2016-7-1 19:40:49 | 只看该作者
还有。有些程序可能调用原生explorer打开,比如vs右键打开目录,第三方shell都无法使用该功能。

点评

估计是DDE,没去跟踪发送的啥消息。快捷方式的右键属性的“打开文件所在目录”估计是一样的。1M的独立应用程序,这样已经达到我的要求了,没打算把explorer所有东西都搞定。  发表于 2016-7-2 10:19
回复

使用道具 举报

146#
发表于 2016-7-5 22:40:55 | 只看该作者
就是一个酷炫点的虚拟桌面吧?
回复

使用道具 举报

147#
发表于 2016-7-11 19:19:02 | 只看该作者
希望卤煮把这个完善~~~
回复

使用道具 举报

148#
发表于 2016-7-31 23:15:14 | 只看该作者
本帖最后由 ljycslg 于 2016-7-31 23:16 编辑

PExlorer的文件资源管理器任务栏图标由未知程序改为PExlorer的图标

任务栏图标能不能改为资源里的首个图标
我删了第一个图标,这样快捷方式图标就默认是原第二个图标了,也就是系统的资源管理器图标,毕竟这个图标各种大小完整

点评

图标我倒是可以改,或者PExlorer.jcfg里面设置个参数。 你为什么要删除第一个图标?那我把第一个图标也用资源管理器的是不是也可以?  详情 回复 发表于 2016-7-31 23:42
回复

使用道具 举报

149#
 楼主| 发表于 2016-7-31 23:42:04 | 只看该作者
本帖最后由 slore 于 2016-12-16 22:55 编辑
ljycslg 发表于 2016-7-31 23:15
PExlorer的文件资源管理器任务栏图标由未知程序改为PExlorer的图标

任务栏图标能不能改为资源里的首个图 ...


图标我倒是可以改,或者PExlorer.jcfg里面设置个参数。
你为什么要删除第一个图标?那我把第一个图标也用资源管理器的是不是也可以?

============2016/8/1==============================
默认图标使用“系统资源管理器”而非“我的电脑” 版本
*最新版已更新图标,请下载最新版

PExlorer_x64.zip

574.27 KB, 下载次数: 5, 下载积分: 无忧币 -2

ICON

PExlorer_x86.zip

500.8 KB, 下载次数: 4, 下载积分: 无忧币 -2

ICON

点评

也行,你直接改第一个最简单  发表于 2016-7-31 23:57
回复

使用道具 举报

150#
发表于 2016-8-9 01:36:19 | 只看该作者
我想把ros explorer的文件管理器给单独弄出来,但是我发现它启动时间有点长,结果发现它枚举目录用了比较长时间,不知道你有没有解决这个问题。

点评

漏了一个缺点,用新版文件打开对话框内核要补几个系统文件。不过补充了,任务管理器,运行的浏览按钮也能用,要个稳定的文件管理器还是值得的。文件管理器这块,没有exploer++做的好。  详情 回复 发表于 2016-8-9 08:36
控制面板打算参照ros explorer的直接shell对象枚举,但是文件管理器我没用。我是用系统的文件打开对话框模拟的,速度,稳定性没的说,还有便利的导航。小细节不足目前有3点,1:没有状态栏,目录信息,文件大小啥的要  详情 回复 发表于 2016-8-9 08:20
楼主的这个项目貌似就是基于ROS Explorer的 但上次用了新版,觉得还很流畅的 虽然我对这个Shell并不感兴趣;但还是得说这是个不错的项目  详情 回复 发表于 2016-8-9 05:03
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-21 21:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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