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

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

   火... [复制链接]
发表于 2013-4-8 15:23:23 | 显示全部楼层
本帖最后由 2010qaqz111 于 2013-4-8 15:24 编辑
回复  2010qaqz111
显示应该 与 explorer  无关。 explorer   只是一个应用程序而已。
与DLL 和 驱动 有 ...
mdyblog 发表于 2013-4-8 15:11


就是不知道哪些dll是被替换过的了,SetDisplayConfig 是 WDK 里的东西,反正挨驱动越近的东西兼容性就越差,没办法就别管了,反正有其他代替的手段,至少在7pe还是能够正常工作的。
回复

使用道具 举报

 楼主| 发表于 2013-4-8 15:41:44 | 显示全部楼层
回复 5701# 2010qaqz111
>>是因为每个线程要保持自己的当前目录?
很多操作时和当前目录 相关的 。
如 IFEX  A.EXE,....
本来有A.EXE,
但此时另外一个线程 LOAD 另一个目录的文件, 结果当前目录变了,没有A.EXE 了。
还有些API 时隐含 当前目录的, 无法干预。
回复

使用道具 举报

 楼主| 发表于 2013-4-8 15:46:30 | 显示全部楼层
就是不知道哪些dll是被替换过的了,SetDisplayConfig 是 WDK 里的东西,反正挨驱动越近的东西兼容性就越 ...
2010qaqz111 发表于 2013-4-8 15:23

XP我试了下。
XPDisplay.PNG
怎么灰, 如果XP压根不支持, 那就不显示这项就是了!?????

有个 XP 显卡驱动带的工具到时能切换显示器。
但原来完全不同。 他是在底层偷梁换柱, 直接将两个显示器交换了。
回复

使用道具 举报

发表于 2013-4-8 16:30:46 | 显示全部楼层
回复  2010qaqz111
>>是因为每个线程要保持自己的当前目录?
很多操作时和当前目录 相关的 。
如 IFEX  ...
mdyblog 发表于 2013-4-8 15:41


所以说应该提倡PE变量,每线程各自自己维护一份就好,环境变量是进程绑定的,都用这个的话必然要打架。
回复

使用道具 举报

发表于 2013-4-8 16:36:06 | 显示全部楼层
XP我试了下。

怎么灰, 如果XP压根不支持, 那就不显示这项就是了!?????

有个 XP 显卡驱动带的工具 ...
mdyblog 发表于 2013-4-8 15:46


XP的多显示器切换看MSDN上诸多讨论的说法,都是各自驱动厂商自己实现的,这个地方的界面也不知道是不是MS只给了个壳子,没有统一调用接口。

这个地方的选项反正给我就觉得很怪异,貌似就是跟显卡驱动有关,有的驱动装好之后就能选,有的就要在复制模式和扩展模式之间来回切换然后某次不知道碰到哪个地方那选项就亮了,但是没两下就又灰了(真遇到过这种情况)。

而且按照 MSDN 的描述,win7 之前没有 SetDisplayConfig 这个东西,应该都是 ChangeDisplaySettingsEx 配合驱动的一些底层调用来完成的,要在 XP 上伺候好这个东西恐怕难度比较大。
回复

使用道具 举报

发表于 2013-4-8 16:40:42 | 显示全部楼层
我记得 XP 上还遇到过一些显卡的驱动是可以支持滚屏的,就是桌面设置一个很大的分辨率,然后实际上显示器的最佳分辨率比那个小,然后鼠标移到屏幕边缘显示器的画面就会滚动,跟星际地图滚动的效果一样。

这个特性其实很有意思,但是能够做到这个驱动貌似很少,nv的驱动有些oem厂商自己改过的可以做到,nv自己的有些版本也可以,amd那边的情况也一样,倒是intel的好像从来没见到过可以滚屏的驱动。
回复

使用道具 举报

 楼主| 发表于 2013-4-8 17:21:24 | 显示全部楼层
我记得 XP 上还遇到过一些显卡的驱动是可以支持滚屏的,就是桌面设置一个很大的分辨率,然后实际上显示器的 ...
2010qaqz111 发表于 2013-4-8 16:40

PECMD2012.1.75.1-130314-57.多窗口线程孵化版_win32_64.sfx.zip
1> LOAD 的 **ncd开关: 不转移当前目录

2> DESKTOP 等 变量 也有PE变量版了。

3》 DISP 支持电视墙。
┃───────────────────────────────────────────
┃DISP [*delay] [=显示器号] [@位置矩阵] [S多显方式] [P] [W水平分辨 H垂直分辨] [B颜色深]
┃                          [F刷新率] [T等待ms]                                         


位置矩阵:X0:Y0:X1:Y1:X2:Y2:X3:Y3... 各显示器的起点位置坐标

2个显示器 左右排
DISP =0 S0x84 @0:0:1024:0 F0x84 W1024 H768

2个显示器 上下排
DISP =0 S0x84 @0:0:0:768 F0x84  W1024 H768


4个显示器 田字形排
DISP =0 S0x84 @0:0:1024:0:0:768:1024:768    W1024 H768  
回复

使用道具 举报

发表于 2013-4-8 20:48:44 | 显示全部楼层
试试,不知道8pe能正常用不,可惜找不到能接4个显示器的机器
回复

使用道具 举报

 楼主| 发表于 2013-4-9 11:46:07 | 显示全部楼层
2010qaqz111 发表于 2013-4-8 16:40
我记得 XP 上还遇到过一些显卡的驱动是可以支持滚屏的,就是桌面设置一个很大的分辨率,然后实际上显示器的 ...

PECMD2012.1.75.1-130314-59.多窗口线程孵化版_win32_64.sfx:
SET-def  ABC  //确保本级有ABC变量,无则加一个空变量,有则什么也不做。ENVI  &&ABC  SET &ABC也可。

如 :
SET-def  ABC  //定义
SET    ABC=123
//后面很多语句, 不确定 ABC是否定义了。
SET-def  ABC   //不改变ABC的值
MESS %&ABC%
//ABC还是123

回复

使用道具 举报

发表于 2013-4-9 17:13:32 | 显示全部楼层
本帖最后由 2010qaqz111 于 2013-4-9 18:41 编辑

FILE 命令加了 --force 参数删不掉目录?只能删除里面的所有文件,但是目录还在。
回复

使用道具 举报

发表于 2013-4-9 19:34:51 | 显示全部楼层
那目录是不是被占用
回复

使用道具 举报

 楼主| 发表于 2013-4-9 19:37:56 | 显示全部楼层
本帖最后由 mdyblog 于 2013-4-9 19:45 编辑
2010qaqz111 发表于 2013-4-9 17:13
FILE 命令加了 --force 参数删不掉目录?只能删除里面的所有文件,但是目录还在。


已修正。   
其实  原来的功能 也挺有趣的。                      
回复

使用道具 举报

发表于 2013-4-9 21:03:32 | 显示全部楼层
本帖最后由 2010qaqz111 于 2013-4-9 21:08 编辑

有些PE的配置文件里加载驱动用的是 pnputil.exe,这和直接用 DEVI 加载有什么不同吗?(除了 DEVI 可以直接加载 CAB 之外)

另外,DEVI *extract 好像还是会扫描硬件?LOG输出里仍然列出了硬件ID的列表。

DEVI *extract C:\Temp\,,C:\Temp\123
这样的命令会让 pecmd 直接崩掉,第一个路径的地方掉了CAB或者inf的文件名只有目录名的情况下。
回复

使用道具 举报

发表于 2013-4-9 21:05:24 | 显示全部楼层
还有 net start 和 SERV 有区别吗?除了用 net start 可以不阻塞外?
回复

使用道具 举报

 楼主| 发表于 2013-4-9 21:56:59 | 显示全部楼层
2010qaqz111 发表于 2013-4-9 21:05
还有 net start 和 SERV 有区别吗?除了用 net start 可以不阻塞外?

没区别吧。 就是 启动、停止服务而已。
回复

使用道具 举报

 楼主| 发表于 2013-4-9 22:51:07 | 显示全部楼层
2010qaqz111 发表于 2013-4-9 21:03
有些PE的配置文件里加载驱动用的是 pnputil.exe,这和直接用 DEVI 加载有什么不同吗?(除了 DEVI 可以直接 ...


有些PE的配置文件里加载驱动用的是 pnputil.exe,这和直接用 DEVI 加载有什么不同吗?(除了 DEVI 可以直接加载 CAB 之外)

另外,DEVI *extract 好像还是会扫描硬件?LOG输出里仍然列出了硬件ID的列表。

DEVI *extract C:\Temp\,,C:\Temp\123
这样的命令会让 pecmd 直接崩掉,第一个路径的地方掉了CAB或者inf的文件名只有目录名的情况下。

1》 问题已解决。

2》 有何区别, 还没研究。  pnputil.exe  XP 有吗? 对于都能用的情况, 大概差不多吧。
回复

使用道具 举报

发表于 2013-4-10 07:20:00 | 显示全部楼层
pnputil.exe  xp没有,win7以后才有
回复

使用道具 举报

发表于 2013-4-10 09:04:47 来自手机 | 显示全部楼层
With ver 130314-57
"DISP W1024 H768 B32 F60" is not working,
"DISP W1024 H768 B32" is working ??? Can Not  Use OLD FUNT ??
"DISP W1024H768B32F60"


回复

使用道具 举报

 楼主| 发表于 2013-4-10 10:41:31 | 显示全部楼层
2011Tduy09 发表于 2013-4-10 09:04
With ver 130314-57
"DISP W1024 H768 B32 F60" is not working,
"DISP W1024 H768 B32" is working ??? ...


With ver 130314-57
"DISP W1024 H768 B32 F60" is not working,
"DISP W1024 H768 B32" is working ??? Can Not  Use OLD FUNT ??
"DISP W1024H768B32F60"
我没有 130314-57 了, 只有最新版。 也没有时间来测试旧版。
130314-60:  "DISP W1024 H768 B32 F60"   "DISP W1024 H768 B32"  是可的。

130314-60: "DISP W1024H768B32F60" 不行, W H B F 前面必须要有一个空格引导。 因为 功能扩展了, 有S0x84 这样的16进制数, 可能出现BF字符。
没想到还有人这样写的。

新的 130314-61  支持 "DISP W1024H768B32F60"
但有一个新的约束: 旧的参数(WHBFT)必须放到 后面, 而不能和新增参数(S@) 混着。


回复

使用道具 举报

发表于 2013-4-10 11:57:23 | 显示全部楼层
SITE *touch,<文件目录路径>[,返回变量名]
这个是更新文件时间为当前系统时间?是更新修改时间吗?不能设置成一个指定的时间吗?如变量输入为2012 06 30 15 32 24之类的格式?
回复

使用道具 举报

 楼主| 发表于 2013-4-10 14:20:20 | 显示全部楼层
2010qaqz111 发表于 2013-4-10 11:57
SITE *touch,[,返回变量名]
这个是更新文件时间为当前系统时间?是更新修改时间吗?不能设置成一个指定的时 ...

touch 的标准用法是不带时间的。
你有那种用法的 实际应用吗?
回复

使用道具 举报

发表于 2013-4-10 15:00:22 | 显示全部楼层
mdyblog 发表于 2013-4-10 14:20
touch 的标准用法是不带时间的。
你有那种用法的 实际应用吗?

我用PECMD做了个从UD提取文件的脚本,但是每次都提取遇到大文件(主要是外置程序比如Office之类)太费时,所以做文件长度和修改时间的比较,但是PUTF每次写完文件都会更新为写文件的时间,这样每次比较文件时间都不一样。

当然这个有其他办法解决,比如只比较长度,或者用外部程序在PUTF写完文件后更新修改时间到和UD内文件一致也可以的,这个功能我记得以前DOS622的时候是有个命令可以做到的,但是win时代之后貌似这个命令被砍了,囧
回复

使用道具 举报

 楼主| 发表于 2013-4-10 16:37:33 | 显示全部楼层
2010qaqz111 发表于 2013-4-10 15:00
我用PECMD做了个从UD提取文件的脚本,但是每次都提取遇到大文件(主要是外置程序比如Office之类)太费时, ...

有用 我就加上把。
回复

使用道具 举报

发表于 2013-4-10 17:47:35 | 显示全部楼层
本帖最后由 2010qaqz111 于 2013-4-10 18:24 编辑
mdyblog 发表于 2013-4-10 16:37
有用 我就加上把。


,然后出现新的情况。

C:\z1.wcs
  1. IFEX C:\z2.wcs,
  2. {
  3. IMPORT C:\z2.wcs
  4. EXIT FILE
  5. }
  6. SET &A=123
  7. _SUB F1
  8. _END
  9. MESS %&A%
复制代码
C:\z2.wcs
  1. LOGS *zx.log
  2. SET &A=123
  3. _SUB F1
  4. _END
  5. MESS %&A%
复制代码
直接运行z2,正常显示123;运行z1,显示为空。
z1的IMPORT要包在IFEX的大括号内,不然不会出问题。
z2中间要隔一个_SUB_END不然不会出问题。

这是出问题的最简化的代码,z1其实是我放在pecmd.ini里面最开始位置的,目的是有了调试启动配置文件,免得每次都打包,调整好了删掉c:\z2.wcs,更新pecmd.ini。

从z1运行产生的LOG:(问题出在第3行,变量解释不正确了)
  1. 928        161551044066.517        [LOGS *zx.log]        <0>        :操作成功完成。
  2. 928        161551166248.153        [SET &A=123]        <0>        :操作成功完成。
  3. 928        163083108926.394        [MESS ]        <0>        :操作成功完成。
  4. 928        163083340094.050        [LEAVE:C:\z1.wcs]
  5. 928        163083775549.401        [LEAVE:]
复制代码
从z2运行产生的LOG:
  1. 1776        487493547343.429        [ENTER:C:\z2.wcs]
  2. 1776        487493674901.057        [LOGS *zx.log]        <0>        :操作成功完成。
  3. 1776        487493776556.178        [SET &A=123]        <0>        :操作成功完成。
  4. 1776        488664356293.380        [MESS 123]        <0>        :操作成功完成。
  5. 1776        488664511219.695        [LEAVE:C:\z2.wcs]
  6. 1776        488664701334.321        [LEAVE:]
复制代码
LOG 没有文件名和行号,这问题看了好半天才发现。
回复

使用道具 举报

 楼主| 发表于 2013-4-10 21:21:08 | 显示全部楼层
本帖最后由 mdyblog 于 2013-4-10 21:56 编辑
2010qaqz111 发表于 2013-4-10 17:47
先 ,然后出现新的情况。

C:\z1.wcsC:\z2.wcs直接运行z2,正常显示123;运行z1,显示为空。 ...


程序加载后为:
IFEX C:\z2.wcs,
{
LOGS *zx.log
SET &A=123
_SUB F1
_END
MESS 11:%&A%
EXIT FILE
}
SET &A=123
_SUB F1
_END
MESS 22:%&A%


你可以用其它的方式 达到希望的功能。
问题是: 【_SUB F1   。。。。  _END】 不能放到 {} 内。 程序不支持这种流程。 存在_SUB _END {}4种中定界符,冲突。
_SUB _END 的定界 强于 }
IFEX 到 _SUB 处 就结束了。 在这个BLOCK中的变量 A 自动销毁, 后面显示自然为空。
等效逻辑为:

IFEX C:\z2.wcs,
{
LOGS *zx.log
SET &A=123
}   //_SUB 高于 BLOCK,强制终止, 相当于处插入一个 }
_SUB F1
_END
MESS 11:%&A%
EXIT FILE
}
SET &A=123
_SUB F1
_END
MESS 22:%&A%


回复

使用道具 举报

 楼主| 发表于 2013-4-10 21:24:34 | 显示全部楼层
本帖最后由 mdyblog 于 2013-4-10 22:07 编辑
2010qaqz111 发表于 2013-4-10 15:00
我用PECMD做了个从UD提取文件的脚本,但是每次都提取遇到大文件(主要是外置程序比如Office之类)太费时, ...


PECMD2012.1.75.1-130314-62.多窗口线程孵化版_win32_64.sfx.zip
SITE *touch   指定时间
SITE *touch:2013 04 10 17 44 52 921,D:\tt.txt,&V
回复

使用道具 举报

 楼主| 发表于 2013-4-10 22:05:31 | 显示全部楼层
2010qaqz111 发表于 2013-4-10 17:47
先 ,然后出现新的情况。

C:\z1.wcsC:\z2.wcs直接运行z2,正常显示123;运行z1,显示为空。 ...

IMPORT C:\z2.wcs 不需要IFEX, 直接IMPORT 即可。没有就不LOAD, 有就LOAD。

IFEX C:\z2.wcs
{
IMPORT C:\z2.wcs
EXIT FILE
}
改为:
IMPORT C:\z2.wcs
IFEX C:\z2.wcs, EXIT FILE

如果 C:\z2.wcs 后面有  EXIT FILE
那么一句即可
IMPORT C:\z2.wcs
后面的代码,不会执行的。
回复

使用道具 举报

 楼主| 发表于 2013-4-10 22:11:04 | 显示全部楼层
2010qaqz111 发表于 2013-4-10 17:47
先 ,然后出现新的情况。

C:\z1.wcsC:\z2.wcs直接运行z2,正常显示123;运行z1,显示为空。 ...


还在搞UD 啊。
FB的作者都已放弃了。
现在很多机器 都没BIOS了。 D4G不能运行, 基于该技术的启动方式将无效了。
不知道未来 怎么发展的。 彻底放弃BIOS;还是,BIOS 会回归,而成多种启动。
回复

使用道具 举报

发表于 2013-4-11 03:57:52 | 显示全部楼层
本帖最后由 2010qaqz111 于 2013-4-11 04:25 编辑

对,确实是加了 _SUB_END 之后那个IMPORT失效,原来的代码是没有 _SUB_END 的,那个 _SUB_END 是用来处理分辨率改变时重设 LOGO 的,换成后面那种写法应该就好了。

这几天在弄一个硬盘上用的8PE,作为应急系统,给那些不大懂电脑的人备用着,把QQOffice大体积的拼音输入法等藏到UD里,他们的系统经常搞坏,vhd都要惨遭毒手,除了这种可以藏起来的东西实在没太好的办法。

UEFI 下好像除了grub2还没有别的启动管理器?尤其是可以搞这种藏东西的。

话说 BIOS 被干掉这个问题,我觉得怎么都死不绝的,就算没BIOS了,大概也会有人在UEFI环境下弄个模拟器之类的东西来跑BIOS CODE的,毕竟很多工业用的机器和嵌入式的设计要更改代的话不说程序设计的问题,改变现有部署方式的代价就会很大,这种东西肯定会有市场的,虽然可能不太乐观。

不过对我们玩 PE 的来说,能全部迁移到 UEFI 并找到一个安全的隐藏方式的话,还是很乐意迁移的。
回复

使用道具 举报

 楼主| 发表于 2013-4-11 05:25:03 | 显示全部楼层
2010qaqz111 发表于 2013-4-11 03:57
对,确实是加了 _SUB_END 之后那个IMPORT失效,原来的代码是没有 _SUB_END 的,那个 _SUB_END 是用来处理分 ...

PECMD2012.1.75.1-130314-63.多窗口线程孵化版_win32_64.sfx 支持原来的写法。
不过最好不要这么写。
层次有点乱。 函数里有块, 块里有函数。

评分

参与人数 1无忧币 +5 收起 理由
clonecd + 5 赞一个!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-11 01:48

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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