kevin_chen 发表于 2016-5-12 16:40:53

下来玩玩吧

xintiandi 发表于 2016-5-12 19:42:59

本帖最后由 xintiandi 于 2016-5-12 19:45 编辑

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

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



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

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

xintiandi 发表于 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。

slore 发表于 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下可以用否我得装了测试下,正常系统下是可以这么搞的。

xintiandi 发表于 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位也是可以用的。热键呼出的问题,我用第三方软件解决。

xintiandi 发表于 2016-5-13 20:35:31

经过反复测试,登录只和wes7开启了custom shell有关,正常系统不会有这个问题。

slore 发表于 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
...
00007FFF7E053643e8 xx xx xx xx call      _GetDesktop (07FFF7DFBD95Ch)
00007FFF7E05364848 85 c0       test      rax,rax
00007FFF7E05364B74             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,所有打开对话框都会自动更新。


"::文件管理器":
{
    "注释":"默认为false,自己手动刷新影响也不大,需要的人自己确定关键地址后设置为true",
    "shell32_hacker":false,
    "shell32x64_hacker_addr":"0xC8017",
    "shell32x86_hacker_addr":"0x19BA5F"
}


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

slore 发表于 2016-5-14 10:40:20

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

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

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

ljycslg 发表于 2016-5-14 11:12:51

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

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

slore 发表于 2016-5-14 11:32:46

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

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

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

xintiandi 发表于 2016-5-14 20:38:34

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

用的这个WindowSampleCredentialProvider

xintiandi 发表于 2016-5-14 20:40:47

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

用的这个WindowSampleCredentialProvider

xintiandi 发表于 2016-5-15 20:31:41

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

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

klth 发表于 2016-5-16 11:11:49

真不错。继续努力啊

slore 发表于 2016-5-20 00:43:00

可以使用自定义开始菜单 ClassicShell
首页为最新版4.2.5的测试截图,有点大3MB的DLL+1MB多的皮肤,ClassicShell1.0版本看了下300KB,基本的程序目录,控制面板和关机按钮,不过没有搜索,对Win10还需要改下5,6行代码才可以用。

Allreal 发表于 2016-5-20 14:15:47

大神,不明觉厉。

bhdc 发表于 2016-5-20 18:24:06

越来越完美了,支持下。

ChinToy 发表于 2016-5-23 02:06:13

支持原创大神

四海皆狂龙 发表于 2016-6-29 17:31:46

本帖最后由 四海皆狂龙 于 2016-6-29 17:37 编辑

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

ljycslg 发表于 2016-6-30 23:13:12

pexlorer桌面打开的进程环境变量不全,少了一些,进程要是用到环境变量就蒙了
TLB开始菜单打开的进程就正常

slore 发表于 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":,
    "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像素会好看些)

"::开始菜单":
{
    "start_icon":"empty",
    "start_padding":8,
    ...
}





FYI
3态开始按钮图标制作说明
http://www.classicshell.net/tutorials/buttontutorial.html
论坛给出的一些图标例子
http://www.classicshell.net/forum/viewtopic.php?f=18&t=3209&sid=aa9c00db6e1633b40e833d483ee1403c

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

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

以后不需要的话,设置一个空定义。
"JS_DESKTOP":
{
   ...
   "cascademenu":{
         "WinXNew":""
   },
   ...
}

slore 发表于 2016-7-1 10:00:42

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

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

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

hfut 发表于 2016-7-1 14:01:35

不知道是否支持TrueLaunchBar?那可是个好东西!如果能够集成它的上弹菜单功能那就太极品了!这将不仅仅成为替代品,而是必需品!

四海皆狂龙 发表于 2016-7-1 19:34:32

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

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

四海皆狂龙 发表于 2016-7-1 19:40:49

还有。有些程序可能调用原生explorer打开,比如vs右键打开目录,第三方shell都无法使用该功能。

cccliziqi 发表于 2016-7-5 22:40:55

就是一个酷炫点的虚拟桌面吧?

2012DAIFUBAO 发表于 2016-7-11 19:19:02

希望卤煮把这个完善~~~

ljycslg 发表于 2016-7-31 23:15:14

本帖最后由 ljycslg 于 2016-7-31 23:16 编辑

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

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

slore 发表于 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==============================
默认图标使用“系统资源管理器”而非“我的电脑” 版本
*最新版已更新图标,请下载最新版

四海皆狂龙 发表于 2016-8-9 01:36:19

我想把ros explorer的文件管理器给单独弄出来,但是我发现它启动时间有点长,结果发现它枚举目录用了比较长时间,不知道你有没有解决这个问题。
页: 1 2 3 4 [5] 6 7 8 9 10 11 12 13 14
查看完整版本: [更新(2022/11/11) ModernUI回归] explorer再见,WinXShell你好!