无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: mdyblog
打印 上一主题 下一主题

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

    [复制链接]
31#
发表于 2014-5-16 11:58:52 | 显示全部楼层
还有一个问题。用fbinst格式化u盘,然后用pecmd在ud后创建两个分区,然后DFMT格式化,但是UD启动的grldr没法搜索到上面的文件。只要用diskgenius编辑过分区表,例如激活某分区又马上取消激活,就可以识别了。我对比前后的分区表,发现起始磁头号、扇区号、柱面号和结束磁头号、扇区号、柱面号有部分被修改了。会不会是我分区的时候出错了?不过diskgenius检查分区表没有错误。贴上代码:
  1. exec !=%desktop%\fbinst (hd2) format --force --align --fat32 --primary 8m --archive %desktop%\abc.fba
  2. PART list disk 2,&usbdiskinfo
  3. MSTR &usbdiskinfo=<2>%&usbdiskinfo%   ///显示u盘全部空间
  4. SET &HIDESIZE=1024  //设子隐藏区大小
  5. calc &NORMALSTART=%&HIDESIZE%*1024*1024+8*1024*1024  //计算可见区起始位置
  6. calc &NORMALSIZE=%&usbdiskinfo%-%&NORMALSTART%  //计算可见区空间大小
  7. PART -up -super -clear del 2#1
  8. PART -up -super -clear del 2#2
  9. PART -up -super -clear del 2#3
  10. PART -up -super -clear del 2#4
  11. PART -up -super -clear 2#1 0x1E %&NORMALSTART% %&NORMALSIZE%
  12. PART -up -super -clear 2#2 0x00 0 0
  13. PART -up -super -clear 2#3 0x00 0 0
  14. PART -up -super -clear 2#4 a 0x0C 8M %&HIDESIZE%M
  15. SHOW 2#1,K
  16. DFMT K:,FAT32
  17. SHOW -,K
  18. PART  -up -super -swap:4 2#1
  19. SHOW 2#1,K
  20. DFMT K:,FAT32
  21. PART  -up -super -swap:4 2#1
复制代码

点评

>>但是UD启动的grldr没法搜索到上面的文件。只要用diskgenius编辑过分区表,例如激活某分区又马上取消激活,就可以识别了。我对比前后的分区表,发现起始磁头号、扇区号、柱面号和结束磁头号、扇区号、柱面号有部分  详情 回复 发表于 2014-5-16 13:05
回复

使用道具 举报

32#
发表于 2014-5-17 23:09:17 | 显示全部楼层
mdyblog 发表于 2014-5-17 22:33
》》1.>>磁盘型号:
试试 下载最新版:
PART -devid LIST disk 0,V

新版的测试结果,正确显示型号等信息。

点评

重新下载, 加了个字段 : 移动磁盘(R)还是固定磁盘(F) 1 4009754624 487 255 63 512 11 000A0D00 7 MBR R USBSTOR\DiskLenovo__USB_Flash_Drive_1100  详情 回复 发表于 2014-5-17 23:38
但接口类型好像错了,应该是SATA吧?  详情 回复 发表于 2014-5-17 23:19
回复

使用道具 举报

33#
发表于 2014-5-17 23:19:55 | 显示全部楼层
阿弥陀佛 发表于 2014-5-17 23:09
新版的测试结果,正确显示型号等信息。

但接口类型好像错了,应该是SATA吧?

点评

这个其实是设备ID。 设备管理器中可以看到: [attachimg]193529[/attachimg]  详情 回复 发表于 2014-5-17 23:42
回复

使用道具 举报

34#
发表于 2014-5-19 12:10:48 | 显示全部楼层
标签页里面的按钮控件,按下去就弹不起来了?

点评

给一段独立测试代码吧。(无关的删掉)  详情 回复 发表于 2014-5-19 13:07
回复

使用道具 举报

35#
发表于 2014-5-19 14:00:48 | 显示全部楼层
mdyblog 发表于 2014-5-19 13:07
给一段独立测试代码吧。(无关的删掉)

我就是模仿示例tab里面的写的,而且里面的示例也一样有这个问题。CGI也是这个问题。
贴一段代码:
  1. WINmain
  2. _SUB WINmain,W400H320,PE合盘小助手,CALL cleanup,,0,,  //主窗口
  3. IFEX %windir%\fonts\Tahoma*,ENVI @WINmain.Font=10:Tahoma
  4. TABS &TABS1,L5T5W385H285,Page1:P1:Mkisofs GUI:使用mkisofs制作ISO;Page2:P2:Oscdimg GUI:使用oscdimg制作ISO
  5. _END

  6. _SUB Page1,W390H260,P1,,,#  //第一标签页MkisofsGUI
  7.     ITEM -font:10:Tahoma &selsource,L315T70W55H25,开始,
  8.     ITEM -font:10:Tahoma &selsource,L5T10W70H25,源目录,call browsource
  9.     ITEM -font:10:Tahoma &selbios,L5T40W70H25,BIOS引导,
  10.     ITEM -font:10:Tahoma &selefi,L195T40W70H25,UEFI引导,
  11.     ITEM -font:10:Tahoma &selhidefile,L5T70W70H25,隐藏文件,
  12.     ITEM -font:10:Tahoma &savefile,L85T70W70H25,保存为,
  13. _END
复制代码

点评

这段代码你测试了下吗? 我测试 6个按钮 都正常弹起 啊!结果如图: [attachimg]193567[/attachimg]  详情 回复 发表于 2014-5-19 14:28
回复

使用道具 举报

36#
发表于 2014-5-19 14:05:48 | 显示全部楼层
应该说不是没有弹起来,而是按下去就一直亮着。
回复

使用道具 举报

37#
发表于 2014-5-19 14:28:47 | 显示全部楼层
发现MBROSTool的edit编辑框比pecmd的好看多了,和delphi、MFC的一样。pecmd只有黑色的线框。能把pecmd也做成那种效果吗?
MBROSTool:    <-->   pecmd:

点评

我努力吧,实现仿3D效果。  详情 回复 发表于 2014-5-19 14:34
回复

使用道具 举报

38#
发表于 2014-5-19 14:38:50 | 显示全部楼层
mdyblog 发表于 2014-5-19 14:34
我努力吧,实现仿3D效果。

超赞!用来做小工具既方便又好看!体积也小巧!
回复

使用道具 举报

39#
发表于 2014-5-19 14:44:52 | 显示全部楼层
mdyblog 发表于 2014-5-19 14:28
这段代码你测试了下吗?
我测试 6个按钮 都正常弹起 啊!结果如图:

>>我测试 6个按钮 都正常弹起 啊!结果如图:
从这张图看,按钮周围是有黑色框的,就像按下去以后的效果。我把win7主题换成经典,也是这样的。aero主题就显示一直亮着

点评

>>按钮周围是有黑色框的 你说这个啊! 那不是没弹起。 那样肯定弹起来了。 可能是显示风格吧。 可能 和EDIT 显示 是一个问题。 实现 美化风格后,显示就不是这样了。 78版用MFC写的。 79~是API写的,什  详情 回复 发表于 2014-5-19 16:45
回复

使用道具 举报

40#
发表于 2014-5-19 14:48:52 | 显示全部楼层
本帖最后由 阿弥陀佛 于 2014-5-19 14:54 编辑

同样的代码,在pecmd V201201.78.21.04 X86 U上运行,就正常了。就是只有一个按钮是亮着的,其它按钮都恢复。
回复

使用道具 举报

41#
发表于 2014-5-19 16:59:40 | 显示全部楼层
mdyblog 发表于 2014-5-19 16:45
>>按钮周围是有黑色框的
你说这个啊!
那不是没弹起。

明白了。那就期待新版的。话说也很奇怪,我用标签页以后,输入焦点也没了。正好是我想要的效果。
回复

使用道具 举报

42#
发表于 2014-5-19 18:29:40 | 显示全部楼层
>>还有换个 HDD的U盘看看。FDD的U盘,中间可能需要插拔磁盘。
上次,ud启动找不到隐藏区文件那个问题,您说FDD盘需要插拔我不明白在什么时候需要插拔U盘?我找了好几个u盘测试,结果都一样。
u盘前面是8M的ud区,中间可见区,隐藏区是在后面的1G。现在贴上diskgenius处理前后的分区表。
前:
  1. 磁盘:2
  2.   磁盘信息 磁盘号   大小(字节)         柱面数 磁头数 扇数 扇区 媒体     签名 总线
  3.               2    15294529536           1859    255   63  512   11 00000000  7 MBR R
  4.   字符说明 激活 __本分区起始__ 分区 __本分区结束__ _______本分区______ ______本分区_______
  5.   激活为0x80    磁头_扇区_柱面 类型 磁头_扇区_柱面 _____起始扇区号____ _____扇区总数______
  6.   主分区1: 0x00 0x05 0x05 0x01 0x0C 0xE3 0xC5 0xFF 0x00 0x40 0x00 0x00 0xE0 0x8F 0xA7 0x01
  7.   主分区2: 0x00 0xE8 0xC9 0xFF 0x0C 0x8A 0x09 0x82 0xE0 0xCF 0xA7 0x01 0x00 0x00 0x20 0x00
  8.   主分区3: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  9.   主分区4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  10.   标志   : 0x55 0xAA
  11.   全部分区: 1   =2  -3  -4
  12.   分区  类型 激活(1) 起始(字节)     长度(字节)    隐藏扇区     结尾(字节) 物理# 盘符
  13.      1  0x0C   0        8388608    14212382720       16384    14220771328    1  K:
  14.      0  0x0C   0    14220771328     1073741824    27774944    15294513152    2   
  15.     -3  0x00   0              0              0           0              0    3   
  16.     -4  0x00   0              0              0           0              0    4   
复制代码

后:
  1. 磁盘:2
  2.   磁盘信息 磁盘号   大小(字节)         柱面数 磁头数 扇数 扇区 媒体     签名 总线
  3.               2    15294529536           1859    255   63  512   11 00000000  7 MBR R
  4.   字符说明 激活 __本分区起始__ 分区 __本分区结束__ _______本分区______ ______本分区_______
  5.   激活为0x80    磁头_扇区_柱面 类型 磁头_扇区_柱面 _____起始扇区号____ _____扇区总数______
  6.   主分区1: 0x00 0x05 0x05 0x01 0x0C 0xFE 0xFF 0xFF 0x00 0x40 0x00 0x00 0xE0 0x8F 0xA7 0x01
  7.   主分区2: 0x00 0xFE 0xFF 0xFF 0x0C 0xFE 0xFF 0xFF 0xE0 0xCF 0xA7 0x01 0x00 0x00 0x20 0x00
  8.   主分区3: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  9.   主分区4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
  10.   标志   : 0x55 0xAA
  11.   全部分区: 1   =2  -3  -4
  12.   分区  类型 激活(1) 起始(字节)     长度(字节)    隐藏扇区     结尾(字节) 物理# 盘符
  13.      1  0x0C   0        8388608    14212382720       16384    14220771328    1  K:
  14.      0  0x0C   0    14220771328     1073741824    27774944    15294513152    2   
  15.     -3  0x00   0              0              0           0              0    3   
  16.     -4  0x00   0              0              0           0              0    4   
复制代码

点评

这不是 8192#楼 的脚本创建的吧。 8192# 中间是1G的 分区。 8M.UD + 1G.分区(可见) + 剩下为一大分区(隐藏) 而这个分区 中间是14G可见分区: 8M.UD + 14G.分区(可见) + 1G.分区(可  详情 回复 发表于 2014-5-20 10:01
回复

使用道具 举报

43#
发表于 2014-5-20 11:36:40 | 显示全部楼层
mdyblog 发表于 2014-5-20 10:01
这不是     8192#楼   的脚本创建的吧。

8192# 中间是1G的 分区。

确实不是原来的脚本。只不过是把隐藏分区放到后面。从UD启动情况是一样的,都找不到其它分区的文件。分区是否隐藏也没有关系。但是如果是直接从激活的隐藏分区启动,是没有问题的。隐藏区放在后面的代码:

  1. exec --wait --hide --exe:#2 fbinst (hd2) format --force --align --fat32 --primary 8m --archive abc.fba
  2. PART list disk 2,&usbdiskinfo
  3. MSTR &usbdiskinfo=<2>%&usbdiskinfo%   ///显示u盘全部空间
  4. SET &HIDESIZE=1024  //设子隐藏区大小
  5. calc &HIDESTART=%&usbdiskinfo%-%&HIDESIZE%*1024*1024  //计算隐藏区起始位置
  6. calc &NORMALSIZE=%&HIDESTART%-8*1024*1024  //计算可见区空间大小
  7. PART -up -super -clear del 2#1
  8. PART -up -super -clear del 2#2
  9. PART -up -super -clear del 2#3
  10. PART -up -super -clear del 2#4
  11. PART -up -super -clear 2#1 0x0C 8M %&NORMALSIZE%
  12. PART -up -super -clear 2#2 0x1C %&HIDESTART% %&HIDESIZE%M
  13. SHOW 2#1,
  14. DFMT K:,FAT32
  15. PART  -up -super -swap:2 2#1
  16. SHOW 2#1,
  17. DFMT K:,FAT32
复制代码

点评

14G超过 8G了。这样 grub可能出问题的(看机器)。 分区表的问题, 晚上我回去试试。  详情 回复 发表于 2014-5-20 11:44
回复

使用道具 举报

44#
发表于 2014-5-20 11:46:24 | 显示全部楼层
mdyblog 发表于 2014-5-20 10:01
这不是     8192#楼   的脚本创建的吧。

8192# 中间是1G的 分区。

分区的问题先不用纠结了,我对比研究一阵子,应该可以自己纠正分区表。
说一下标签页的另一个问题,pecmd80以后的版本,有标签页的窗口,一打开会有一个出错的声音,就像是输入框输入不正确的字符提示的声音一样“ding”的一声。
示例脚本也一样。78版正常。
回复

使用道具 举报

45#
发表于 2014-5-20 14:08:40 | 显示全部楼层
执行PART  -up -super -swap:4 2#1 或者part -gui 交换物理号,有些u盘不会马上显示出来。需要插拔u盘。能不能把MBROSTool的刷新磁盘的功能加进pecmd命令?

点评

加上了。 开关: -hup:刷新移动磁盘 -ahup:刷新磁盘 (移动磁盘和非移动磁盘) 也可单独命令: PART [-ahup] hupdate [磁盘] //刷新磁盘  详情 回复 发表于 2014-5-20 23:10
晚上试试。  详情 回复 发表于 2014-5-20 14:18
回复

使用道具 举报

46#
发表于 2014-5-20 19:30:14 | 显示全部楼层
80版还有一个问题,BROW的初始路径无效。测试代码:
  1. WINmain
  2. _SUB WINmain,W240H150,brow测试
  3. ITEM &A,L80T80W70H25,打开,call Onbrow
  4. _END
  5. _SUB Onbrow
  6. BROW &brow,%desktop%\*.bin,请选择一个文件,bin文件|*.bin|所有格式|*|,0x1000
  7. _END
复制代码

点评

如果最新不行。 试试这个。  详情 回复 发表于 2014-5-21 00:06
有什么问题? 测试效果: [attachimg]193636[/attachimg]  详情 回复 发表于 2014-5-20 23:06
回退到201201860100这个版本就没问题。  详情 回复 发表于 2014-5-20 19:45
回复

使用道具 举报

47#
发表于 2014-5-20 19:45:01 | 显示全部楼层
本帖最后由 阿弥陀佛 于 2014-5-20 20:22 编辑
阿弥陀佛 发表于 2014-5-20 19:30
80版还有一个问题,BROW的初始路径无效。测试代码:


回退到201201860100这个版本就没问题。
5月9号的201201860200版也没问题。应该是最近修改出来的bug。
回复

使用道具 举报

48#
发表于 2014-5-21 11:23:24 | 显示全部楼层
本帖最后由 阿弥陀佛 于 2014-5-21 11:28 编辑
mdyblog 发表于 2014-5-21 06:14
>>阿弥陀佛:  最新版确实不行。但是这个可以。  发表于 5 小时前
你弄成 “回复”吧,。
这种需要回 ...


>>请在确认下, 最晚的最终版,是否不行?
确定网盘的最新版是不能初始化任何目录的。6259#提供的附件是可以初始化某些目录的,但%temp%目录一样无效。
回复

使用道具 举报

49#
发表于 2014-5-21 12:32:33 | 显示全部楼层
>>PART [-ahup]      hupdate  [磁盘]      //刷新磁盘
刷新磁盘能举个例子吗?我交换分区以后刷新磁盘,但没有效果,还得手动插拔。
之前我是使用devcon.exe禁用u盘再启用实现免插拔的。速度很快就刷新出来了。
回复

使用道具 举报

50#
发表于 2014-5-21 13:36:57 | 显示全部楼层
mdyblog 发表于 2014-5-21 13:04
PART -super -up -ahup   -swap:2  1#1

运行PART -super -up -hup -swap:4  2#1或者PART -super -up -ahup -swap:4  2#1
读卡器+SD卡刷新磁盘还是不行,还是要手动插拔。而我的U盘原本就不需要刷新就能交换。
是不是可以模仿devcon.exe,先禁用再启用?这样应该就可以了。我测试过用pecmd的DEVI命令,执行 DEVI *disable:设备ID然后DEVI *enable:设备ID,这样是可以,只不过要十几秒才能刷新出来。用devcon.exe不到1秒就刷新了。
回复

使用道具 举报

51#
发表于 2014-5-21 14:56:40 | 显示全部楼层
mdyblog 发表于 2014-5-21 13:51
你用的 设备id  和 PART -devid LIST DISK  2,V
得出来的 id是一样的吗?

>>你用的 设备id  和 PART -devid LIST DISK  2,V 得出来的 id是一样的吗?
设备id是先由PART -devid LIST DISK  2,V 得出,截取\之后的部分,再由devcon.exe find查找出的准确的id。然后再用pecmd的devi命令禁用启用。本来devcon.exe是支持通配符的,之所以这么麻烦只是为了测试pecmd的devi的命令,因为devi命令不支持通配符啊,必须输入准确的id。
回复

使用道具 举报

52#
发表于 2014-5-21 15:21:05 | 显示全部楼层
mdyblog 发表于 2014-5-21 15:14
1: 为什么要截取呢?
就用 那查出来的不行吗?

>>设备管理-》磁盘驱动器-》对应磁盘-》禁用/启用 能成吗?
能成!不管用什么办法,只要禁用->启用就可以。
回复

使用道具 举报

53#
发表于 2014-5-21 15:29:18 | 显示全部楼层
mdyblog 发表于 2014-5-21 15:14
1: 为什么要截取呢?
就用 那查出来的不行吗?

>>为什么要截取呢?就用 那查出来的不行吗?
查出来的id用devcon.exe是可以禁用启用,但pecmd不行,因为这个id不完整啊。截取\后面那一段,是因为part查出来的信息除了id还有其他信息,也要截取,所以我截取的是\之后的。然后再【devcon.exe find “截取字符串”】,这样就能得到准确的id的。
回复

使用道具 举报

54#
发表于 2014-5-21 15:33:05 | 显示全部楼层
mdyblog 发表于 2014-5-21 15:25
你亲自用那个U盘试了吗? 而不是推理出来的结论。
“设备管理-》磁盘驱动器-》你那测试磁盘-》禁用 ...

>>对比下, 你那ID 到底那个设备的 “设备范例Id” 或 “硬件 Id”?
devcon得到的id是:USBSTOR\DISK&VEN_GENERIC&PROD_STORAGE_DEVICE&REV_9451\7&724E74F&0
设备管理器没有“设备范例Id”win7可能是“ 设备实例路径”,结果是一样的,如图:
回复

使用道具 举报

55#
发表于 2014-5-21 15:35:24 | 显示全部楼层
>>你亲自用那个U盘试了吗? 而不是推理出来的结论。
测试过三种办法禁用->启用设备,第一是windows设备管理器,第二是devcon.exe,第三是pecmd的devi命令。都可以。测试u盘和读卡器都可以。所以才得出的推论。
回复

使用道具 举报

56#
发表于 2014-5-21 16:34:53 | 显示全部楼层
mdyblog 发表于 2014-5-21 15:59
那么
part -devid  lsit disk 2,V
得出的DevID 又是多少呢?给个图吧。

devcon find只要匹配部分字符,查询出来的结果都是一样的,和设备管理器看到的一样。

命令如下:
  1. part -devid list disk 2,&V
  2. MSTR &V1=<12>%&V%
  3. exec*1 --wait --hide &V2=devcon.exe find %&V1%
  4. MSTR -delims:: &V3=<1>%&V2%
  5. mess 执行part  :%&V%\n截取      :%&V1%\n执行devcon:%&V2%\n截取      :%&V3%
复制代码

结果如图:

设备管理器:
回复

使用道具 举报

57#
发表于 2014-5-21 17:06:18 | 显示全部楼层
mdyblog 发表于 2014-5-21 16:53
1:
PART -devid 竟然 和设备管理器不一样, 奇怪?
还有 PART -devid 返回的 devid 应该用很多巫师 ...

>>会不会是其它原因?比如:1)此时U盘在使用者。锁住了。
U盘并没有在使用,这是一个读卡器+SD卡,不知道是否有关系。我的U盘是不需要-ahup 就可以交换分区的。
>>你直接 将 PART -devid 返回的 devid 用于DEVCON ,可以刷新设备吗?
可以的,devcon匹配部分就可以,会禁用所有符合的设备。例如devcon.exe disable USBSTOR\*  会禁用所有USB存储设备。
回复

使用道具 举报

58#
发表于 2014-5-21 17:08:47 | 显示全部楼层
>>麻烦 用 MBROSTool 的分区管理 的 分区交换 试试 ,能刷新吗?
MBROSTool 的分区管理也不行
回复

使用道具 举报

59#
发表于 2014-5-21 18:33:02 | 显示全部楼层
mdyblog 发表于 2014-5-21 18:13
不要 用通配符。 就用返回的devid本身精确匹配。

devcon.exe使用返回值可以。pecmd的devi命令不可以,必须用devcon.exe查询出来的完整id才可以。
回复

使用道具 举报

60#
发表于 2014-5-21 18:33:48 | 显示全部楼层
阿弥陀佛 发表于 2014-5-21 18:33
devcon.exe使用返回值可以。pecmd的devi命令不可以,必须用devcon.exe查询出来的完整id才可以。

但是你给的代码多了@字符,要去掉才可以
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-2 06:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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