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

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

   火... [复制链接]
 楼主| 发表于 2015-4-13 11:26:18 | 显示全部楼层
ling3882688 发表于 2015-4-13 11:06
M大,新版本的消息窗口怎么这样了呢?右侧空出好大一块。

旧板是逐行计算大小。
问题是,最超大 (50万字符)对话框,太费时。
后来改成 然系统自动整体 计算大小。
可能是 两种方式 对字体处理不同。
再看看怎么改。

点评

M大,我用part -super -up -gpt 0#+1 10G 30G,为什么每次会把其它分区给删了?我只是想在两头两个分区之间的空白区域新建一个分区。  详情 回复 发表于 2015-4-13 16:52
回复

使用道具 举报

发表于 2015-4-13 20:23:45 | 显示全部楼层
M大,
PART list disk,name  
MESS  disk[%name%]

如果不需要弹出窗口,直接输出到文本,怎么处理呀?
另外,系统剪贴板内容输出到文本,用PECMD能处理吗,我现在用VBS

点评

PART list disk ,name //MESS disk[%name%] TEAM ENVI^ Clipboard=%name%|ENVI^ Clipboard?=CP WRIT %CurDir%\剪贴板内容.txt,$1,%name%  详情 回复 发表于 2015-4-14 10:10
回复

使用道具 举报

发表于 2015-4-14 10:10:01 | 显示全部楼层
本帖最后由 ling3882688 于 2015-4-14 11:05 编辑
feiyike 发表于 2015-4-13 20:23
M大,
PART list disk,name  
MESS  disk[%name%]

PART list disk 0 ,name
//MESS  disk[%name%]
TEAM ENVI^ Clipboard=%name%|ENVI^ Clipboard?=CP
WRIT %CurDir%\剪贴板内容.txt,$1,%CP%
//WRIT %CurDir%\剪贴板内容.txt,$1,%name%

授人以鱼不如授人以渔,如果你需要什么功能可以直接打开PECMD输入,例如:剪贴板,然后点右下角的搜索就可以了。

回复

使用道具 举报

发表于 2015-4-15 11:45:16 | 显示全部楼层
M大,如何用PECMD命令模仿ULTRAISO 在U盘末端做一个指定大小(比如1500MB)的隐藏区?

点评

这个要重新写分区表吧?先要减少现有的分区,再在第4个分表写上1500M的分区,就是隐藏的。 PART命令就可以。  详情 回复 发表于 2015-4-15 13:21
这个MBROSTool就可以。  详情 回复 发表于 2015-4-15 12:27
回复

使用道具 举报

发表于 2015-4-15 12:27:49 | 显示全部楼层
chiannet 发表于 2015-4-15 11:45
M大,如何用PECMD命令模仿ULTRAISO 在U盘末端做一个指定大小(比如1500MB)的隐藏区?

这个MBROSTool就可以。
回复

使用道具 举报

发表于 2015-4-15 13:21:32 | 显示全部楼层
chiannet 发表于 2015-4-15 11:45
M大,如何用PECMD命令模仿ULTRAISO 在U盘末端做一个指定大小(比如1500MB)的隐藏区?

这个要重新写分区表吧?先要减少现有的分区,再在第4个分表写上1500M的分区,就是隐藏的。
PART命令就可以。
回复

使用道具 举报

发表于 2015-4-15 15:45:59 | 显示全部楼层
最近想到利用ENVI^ alias命令和内嵌脚本,提供扩展的命令。这个方法有意思吗?
增强版PECMD.7z (538.16 KB, 下载次数: 17)
附件这个封装了一下MOUN命令,简化了UDm, UD, U+隐藏区的挂载,MOUN命令参数太多,用起来比较复杂。
以下是几个例子,可以用简单的命令来挂载。
   mount.udm USB0#1 Z:
   mount.ud 4#WIN8X64PE.ISO * ro
   mount.u+ USB0

点评

有意思。  详情 回复 发表于 2015-4-15 16:02
回复

使用道具 举报

 楼主| 发表于 2015-4-15 16:02:05 | 显示全部楼层
sp_star 发表于 2015-4-15 15:45
最近想到利用ENVI^ alias命令和内嵌脚本,提供扩展的命令。这个方法有意思吗?

附件这个封装了一下MOUN ...

有意思。
回复

使用道具 举报

发表于 2015-4-16 10:17:28 | 显示全部楼层
本帖最后由 ling3882688 于 2015-4-16 10:29 编辑

_SUB GetVol
    TEAM SET &v=| SET &b=0| SET &VL=%~3| SET &dsk=%~4| SET &pt=%~5| SET &r1=| SET &r2=
    FIND $%&VL%=,!  FDRV *vol &r1,&r2=%&VL%
    FIND $%&VL%=,
    { LOCK #pecmd_disk
        ENVI &b=1
        FDRV *idle *rsort &&VL=*:
        LSTR &VL=2,%&VL%
        SHOW & %&dsk%#%&pt%,%&VL%
        FDRV *vol &r1,&r2=%&VL%
        SHOW & ,%&VL%
    }
    ENVI-ret %1=%&r1%
    ENVI-ret %2=%&r2%
_END

GetVol  &&VOL  &&FS ""  0 3
MESS 【%&VOL%】【%FS%】

M大,这是之前你给我的一个获取卷标和文件系统的例子,如果碰到扩展分区,就无法正确获取卷标了。
还有,用part命令新建的分区,例如本来有3个分区,新建一个分区不打乱原来的编号,正常应该是0#4.

点评

1:扩展分区本来就没有 卷标 2:创建的时候,指定具体的分区号就可以了,如 0#4  详情 回复 发表于 2015-4-16 14:53
回复

使用道具 举报

 楼主| 发表于 2015-4-16 14:53:54 | 显示全部楼层
ling3882688 发表于 2015-4-16 10:17
_SUB GetVol
    TEAM SET &v=| SET &b=0| SET &VL=%~3| SET &dsk=%~4| SET &pt=%~5| SET &r1=| SET &r2= ...

1:扩展分区本来就没有  卷标

2:创建的时候,指定具体的分区号就可以了,如 0#4

点评

奥,说错了,不是扩展分区,是逻辑分区。  详情 回复 发表于 2015-4-16 17:36
回复

使用道具 举报

发表于 2015-4-16 17:36:14 | 显示全部楼层
mdyblog 发表于 2015-4-16 14:53
1:扩展分区本来就没有  卷标

2:创建的时候,指定具体的分区号就可以了,如 0#4

奥,说错了,不是扩展分区,是逻辑分区。

点评

参数错了吧,多试几个:5~9 测试正常: [attachimg]215004[/attachimg]  详情 回复 发表于 2015-4-16 18:42
回复

使用道具 举报

 楼主| 发表于 2015-4-16 18:42:23 | 显示全部楼层
ling3882688 发表于 2015-4-16 17:36
奥,说错了,不是扩展分区,是逻辑分区。

参数错了吧,多试几个:5~9
测试正常:
Snap1.gif

点评

嗯,确实是物理编号写错了,有逻辑分区的话应该+1的。改成直接获取正确的物理编号就没问题了。  详情 回复 发表于 2015-4-17 14:54
回复

使用道具 举报

发表于 2015-4-17 14:54:35 | 显示全部楼层
本帖最后由 ling3882688 于 2015-4-17 15:01 编辑
mdyblog 发表于 2015-4-16 18:42
参数错了吧,多试几个:5~9
测试正常:


嗯,确实是物理编号错了(以前想当然以为物理编号就是第几块分区,实际上有扩展分区的时候就不一定了。),有逻辑分区的话应该+1的。改成直接获取正确的物理编号<8>然后再获取卷标就没问题了。
谢谢M大!
回复

使用道具 举报

发表于 2015-4-19 10:45:48 | 显示全部楼层
谢谢分享,恭祝新年大吉大利!
回复

使用道具 举报

发表于 2015-4-20 12:08:03 | 显示全部楼层
本帖最后由 ling3882688 于 2015-4-20 12:34 编辑

M大,我想检测一个硬盘有没有活动分区,我会单个判断每个分区是不是活动的,但是如果分区数量不确定怎么判断?
老是不会处理这样的情况,比如假设我知道有几个主分区。那我可以分别检测每个分区是不是活动,但是分区数是个变量,不确定的。

想学你之前给我的代码来写,但是不知道怎么写,思路倒是有,一种方法就是遍历每个分区,每次用磁盘分区数-1,直到分区数-1=0。
另一种就是判断Part -gui里那个活动那一列里是不是有1.M大有没有更好的办法?

点评

如果分区数量不确定怎么判断? ----- 可以直接列出分分区列表 PART list part 0,parts mess. %parts%  详情 回复 发表于 2015-4-20 16:44
回复

使用道具 举报

 楼主| 发表于 2015-4-20 16:44:55 | 显示全部楼层
ling3882688 发表于 2015-4-20 12:08
M大,我想检测一个硬盘有没有活动分区,我会单个判断每个分区是不是活动的,但是如果分区数量不确定怎么判 ...

如果分区数量不确定怎么判断?
-----
可以直接列出分分区列表
PART  list  part   0,parts
mess. %parts%

点评

这些命令我倒是都知道,可能我没表述明白。 比如我自己知道有4个分区,那 1234分别检测每个分区是否是活动的就可以了,但是写出来代码的话这个分区数是个变量。数值打比方说是100呢? 笨笨的办法是下面这样:  详情 回复 发表于 2015-4-20 17:20
回复

使用道具 举报

发表于 2015-4-20 17:20:51 | 显示全部楼层
本帖最后由 ling3882688 于 2015-4-20 17:44 编辑
mdyblog 发表于 2015-4-20 16:44
如果分区数量不确定怎么判断?
-----
可以直接列出分分区列表

这些命令我倒是都知道,可能我没表述明白。

比如我自己知道有4个分区,那 1234分别检测每个分区是否是活动的就可以了,但是写出来代码的话这个分区数是个变量。数值打比方说是100呢?

IFEX $%分区数%=2, CALL P2
IFEX $%分区数%=3, CALL P3
_SUB P2
PART -hextp -phy# -fill list part 0#1 ,&&PD1|MSTR P1T3=<3>%&PD1%
PART -hextp -phy# -fill list part 0#2 ,&&PD2|MSTR P2T3=<3>%&PD2%
IFEX $[ $%P1T3%=1 | $%P2T3%=1 ],MESS 存在活动分区!
_END

_SUB P3
PART -hextp -phy# -fill list part 0#1 ,&&PD1|MSTR P1T3=<3>%&PD1%
PART -hextp -phy# -fill list part 0#2 ,&&PD2|MSTR P2T3=<3>%&PD2%
PART -hextp -phy# -fill list part 0#2 ,&&PD2|MSTR P2T3=<3>%&PD2%
IFEX $[ $%P1T3%=1 | $%P2T3%=1 | $%P3T3%=1],MESS 存在活动分区!
_END


最笨的办法是上面这样,我想用个代码段来写,但是不会写(代码段帮助没看懂),想跟M大学习下简单的代码段怎么写,我参照了一些代码段的例子,思路大概是这样:

获取 %分区数%这个变量,然后

{
检测0#%分区数%是否是活动的!活动则提示!
SET 分区数=%分区数%-1
直到 %分区数%=0
}

能不能给个简单的代码段的例子?

点评

FORX * %parts%,pt, { ...... }  详情 回复 发表于 2015-4-20 17:47
回复

使用道具 举报

 楼主| 发表于 2015-4-20 17:47:01 | 显示全部楼层
ling3882688 发表于 2015-4-20 17:20
这些命令我倒是都知道,可能我没表述明白。

比如我自己知道有4个分区,那 1234分别检测每个分区是否是 ...

FORX * %parts%,pt,
{
......
}

点评

照葫芦画个瓢: //获取活动分区物理编号 _SUB GetAPart ENVI^ FORCELOCAL=1 SET &hd=%~1 CALC #hd=%hd% PART list part %hd%,&&pts SET &Active=0 FORX * %  详情 回复 发表于 2015-4-21 03:36
好像有点明白了,我自己DIY了一下,就是这个效果。谢谢M大。 _SUB ListPPt ENVI^ FORCELOCAL=1 SET &hd=%~1 CALC #hd=%hd% PART list part %hd%,&&pts SET &nall=0  详情 回复 发表于 2015-4-20 17:55
回复

使用道具 举报

发表于 2015-4-20 17:55:45 | 显示全部楼层
本帖最后由 ling3882688 于 2015-4-21 03:42 编辑
mdyblog 发表于 2015-4-20 17:47
FORX * %parts%,pt,
{
......

好像有点明白了,我自己DIY了一下,就是这个效果。谢谢M大。
_SUB ListPPt
        ENVI^ FORCELOCAL=1
        SET &hd=%~1
        CALC #hd=%hd%
        PART list part %hd%,&&pts
        FORX * %pts%,&&pt,
        {
        mess %&pt%
        }

_END

ListPPt 0 &&ppts
回复

使用道具 举报

发表于 2015-4-21 03:36:23 | 显示全部楼层
本帖最后由 ling3882688 于 2015-4-21 03:38 编辑
mdyblog 发表于 2015-4-20 17:47
FORX * %parts%,pt,
{
......

照葫芦画个瓢:
//获取活动分区物理编号
_SUB GetAPart
        ENVI^ FORCELOCAL=1
        SET &hd=%~1
        CALC #hd=%hd%
        PART list part %hd%,&&pts
        SET &Active=不存在
        FORX * %pts%,&&pt,
        {
            LSTR &&c0=1,%pt%
            FIND $%c0%=@, EXIT -  //扩展
            TEAM  PART -phy# list part %hd%:%pt%,&&v1| MSTR &&adp,&&ppt=<3><8>%v1%
            IFEX $%adp%=1, CALC Active=%&ppt%  
        }  
        ENVI-ret %~2=%Active%
_END

GetAPart 0 &&APart
MESS 【活动分区为:%&APart%】

偶然遇到个有意思的问题:如果 MESS 【活动分区为:0#%&APart%】这样不能正常显示,因为#被认成了#消息窗类型,怎么处理可以让这个#符号正常显示?
别的命令有时候也会遇到这样类似的问题,例如下面这个就必须分开写用TEAM的话分隔符"|"和字符串比较的"|"冲突了:TEAM SET &&TT=PPP|IFEX |%&TT%=PPP,MESS 1111
想了一下解决了:TEAM SET &&TT=PPP|FIND $%&TT%=PPP,MESS 1111 终于又知道一点FIND 和 IFEX区别和作用了。上面的#号还是不知道怎么处理。

点评

TEAM里面嵌入|, 就加个| 没嵌入一层,就加个。 TEAM SET &&TT=PPP|IFEX ||%&TT%=PPP,MESS 1111  详情 回复 发表于 2015-4-21 08:28
MESS 【活动分区为:0#%&APart%】@  详情 回复 发表于 2015-4-21 08:26
回复

使用道具 举报

发表于 2015-4-21 07:30:29 | 显示全部楼层
请教一下M大,我没有找到64位的installime.exe,即安装输入法的。查了一下,可不可以用PECMD调用DLL中的API来实现这个功能,imm32.dll中有ImminstallIMEA和ImminstallIMEW两个函数。

点评

可以调用。 问题是 要知道欻第什么杨的参数表。  详情 回复 发表于 2015-4-21 08:25
回复

使用道具 举报

 楼主| 发表于 2015-4-21 08:25:24 | 显示全部楼层
hhh333 发表于 2015-4-21 07:30
请教一下M大,我没有找到64位的installime.exe,即安装输入法的。查了一下,可不可以用PECMD调用DLL中的API ...


可以调用。 问题是 要知道传入什么样的参数表。

点评

ImmInstallIME 函数原型: HKL ImmInstallIME(LPCTSTR lpszIMEFileName, LPCTSTR lpszLayoutText); 函数的两个参数分别为输入法IME文件的文件名和在控制面板的是输入法选项中显示的输入法名称。函数调用后将返回  详情 回复 发表于 2015-4-21 10:05
回复

使用道具 举报

 楼主| 发表于 2015-4-21 08:26:35 | 显示全部楼层
本帖最后由 mdyblog 于 2015-4-21 08:30 编辑
ling3882688 发表于 2015-4-21 03:36
照葫芦画个瓢:
//获取活动分区物理编号
_SUB GetAPart


MESS 【活动分区为:0#%&APart%】@

MESS 【活动分区为:0#%&APart%】#OK

点评

谢谢M大。  详情 回复 发表于 2015-4-21 14:12
回复

使用道具 举报

 楼主| 发表于 2015-4-21 08:28:24 | 显示全部楼层
ling3882688 发表于 2015-4-21 03:36
照葫芦画个瓢:
//获取活动分区物理编号
_SUB GetAPart

TEAM里面嵌入|, 就加个|
没嵌入一层,就加个。

TEAM SET &&TT=PPP|IFEX ||%&TT%=PPP,MESS 1111
回复

使用道具 举报

发表于 2015-4-21 10:05:57 | 显示全部楼层
mdyblog 发表于 2015-4-21 08:25
可以调用。 问题是 要知道传入什么样的参数表。


ImmInstallIME
函数原型:
HKL ImmInstallIME(LPCTSTR lpszIMEFileName, LPCTSTR lpszLayoutText);
函数的两个参数分别为输入法IME文件的文件名和在控制面板的是输入法选项中显示的输入法名称。函数调用后将返回一个被安装输入法的输入法标识符(或称做输入法句柄)。
示例代码:
HKL hKL = ImmInstallIME("c:\\winwb86.ime", "王码五笔型输入法86版");


----网上查到的

点评

你就试试 PECMD CALL $imm32.dll,ImminstallIMEW,c:\winwb86.ime, 王码五笔型输入法86版  详情 回复 发表于 2015-4-21 10:14
回复

使用道具 举报

 楼主| 发表于 2015-4-21 10:14:52 | 显示全部楼层
hhh333 发表于 2015-4-21 10:05
ImmInstallIME
函数原型:
HKL ImmInstallIME(LPCTSTR lpszIMEFileName, LPCTSTR lpszLayoutText);

你就试试

PECMD CALL $imm32.dll,ImminstallIMEW,c:\winwb86.ime, 王码五笔型输入法86版

点评

似乎不行。我在VC2005中写了如下程序: 可以注册成功,但需要msvcr80.dll的支持,不知有没有办法不要vc2005的支持。  详情 回复 发表于 2015-4-21 11:32
回复

使用道具 举报

发表于 2015-4-21 11:32:33 | 显示全部楼层
mdyblog 发表于 2015-4-21 10:14
你就试试

PECMD CALL $imm32.dll,ImminstallIMEW,c:\winwb86.ime, 王码五笔型输入法86版

似乎不行。我在VC2005中写了如下程序:
  1. #include "stdafx.h"
  2. #include <Windows.h>
  3. #include "Imm.h"
  4. #pragma comment(lib,"imm32.lib")


  5. int _tmain(int argc, _TCHAR* argv[])
  6. {
  7.         HKL IME = ImmInstallIME(argv[1], argv[2]);
  8.         if(IME==0)
  9.         {
  10.                 printf("Install IME Failure.\n");
  11.         }
  12.         else
  13.         {
  14.                 printf("Install IME Success.\n");
  15.         }
  16.         return 0;
  17. }
复制代码


可以注册成功,但需要msvcr80.dll的支持,不知有没有办法不要vc2005的支持。

点评

static模式编译。  详情 回复 发表于 2015-4-21 12:53
回复

使用道具 举报

 楼主| 发表于 2015-4-21 12:53:04 | 显示全部楼层
hhh333 发表于 2015-4-21 11:32
似乎不行。我在VC2005中写了如下程序:

static模式编译。

点评

M大,在mount.mbr里,可能存在需要的代码: ...... _SUB mount.mbr GetDevice &&device FIND $%device%=,exit //空设备,返回 RSTR n_hd=1,%device%里 ...... 比如这个红色的1,  详情 回复 发表于 2015-4-21 16:14
回复

使用道具 举报

发表于 2015-4-21 14:12:05 来自手机 | 显示全部楼层
mdyblog 发表于 2015-4-21 08:26
MESS 【活动分区为:0#%&APart%】@

MESS 【活动分区为:0#%&APart%】#OK

谢谢M大。
回复

使用道具 举报

发表于 2015-4-21 14:25:56 | 显示全部楼层
x64的pecmd.exe用 Resource Hacker打开不开吗?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-17 18:08

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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