无忧启动论坛

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

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

    [复制链接]
9481#
 楼主| 发表于 2015-5-18 20:17:01 | 只看该作者
chiannet 发表于 2015-5-18 19:29
TEAM ENVI ULIST=|ENVI HDLIST=
PART LIST DISK,DISKXFORX * %DISKX%,HD,
{

这是显示的问题吧。

退出所有程序, KILL EXPLORER 并重启 EXPLORER。 试试。

点评

刚才测试了,放到 EXPLORER 启动之前运行还是不行。 X64下文件系统显示对了,但卷标依旧不对。 X86下文件系统显示及卷标都不对。  详情 回复 发表于 2015-5-18 21:31
回复

使用道具 举报

9482#
发表于 2015-5-18 21:31:30 | 只看该作者
mdyblog 发表于 2015-5-18 20:17
这是显示的问题吧。

退出所有程序, KILL EXPLORER 并重启 EXPLORER。 试试。


刚才测试了,放到 EXPLORER 启动之前运行还是不行。

X64下文件系统显示对了,但卷标依旧不对。

X86下文件系统及卷标都显示不对。

点评

退出所有程序, KILL EXPLORER 并重启 EXPLORER。 ------------- 我是说手动操作。---作为测试手段。  详情 回复 发表于 2015-5-18 21:36
回复

使用道具 举报

9483#
 楼主| 发表于 2015-5-18 21:36:57 | 只看该作者
chiannet 发表于 2015-5-18 21:31
刚才测试了,放到 EXPLORER 启动之前运行还是不行。

X64下文件系统显示对了,但卷标依旧不对。

退出所有程序, KILL EXPLORER 并重启 EXPLORER。
-------------
我是说手动操作。---作为测试手段。

点评

试验了,没达到预期效果,结果同9904楼。  详情 回复 发表于 2015-5-18 21:54
回复

使用道具 举报

9484#
发表于 2015-5-18 21:54:12 | 只看该作者
mdyblog 发表于 2015-5-18 21:36
退出所有程序, KILL EXPLORER 并重启 EXPLORER。
-------------
我是说手动操作。---作为测试手段。

试验了,没达到预期效果,结果同9904楼。
回复

使用道具 举报

9485#
发表于 2015-5-19 08:40:52 | 只看该作者
本帖最后由 chiannet 于 2015-5-19 08:47 编辑

orderdisk.7z (592 Bytes, 下载次数: 6)

以下均是在Windows 8.1 (X86/ X64)RamOS下进行测试的。

在单硬盘计算机上,执行以下1或2,硬盘(hd0,1)为C:,U盘可见区总是占据D:,硬盘其它分区从E:开始依次分配。
1、orderdisk.ini或ORDERUSB.WCS(PECMD附带的)都不执行时;
2、仅执行ORDERUSB.WCS时。

若在explorer运行前pecmd load orderdisk.ini,能够把U盘盘符由D:-->U:,硬盘其它分区从D:开始依次分配。
但硬盘分区的卷标、类型信息总是不更新,例如分区E:-->D:,旧D:的卷标、类型(也就是U盘的卷标、类型)会传染给新的D:,旧E:的卷标、类型(也就是U盘的卷标、类型)会传染给新的E:,不能据实更新。

//在重新分配硬盘盘符那一步,分别测试如下三种方法,结果都一样。请M大破了这难题。
1 CALL SHOWP CDEFGHIJKLMNOPQRSTBAZVU "%HDLIST%"
2 SHOW F:0
3 DISK  ,,,1

回复

使用道具 举报

9486#
发表于 2015-5-19 12:18:34 | 只看该作者
删除注册表
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2]
问题解决!

[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]可以不用删除

点评

SUBJ %LETTER% 试试改为: SUBJ * %LETTER% SHOW 也可以。也要带上*。  详情 回复 发表于 2015-5-19 12:34

评分

参与人数 1无忧币 +5 收起 理由
527104427 + 5 c 大是技术大牛,这方法收藏了!

查看全部评分

回复

使用道具 举报

9487#
 楼主| 发表于 2015-5-19 12:34:17 | 只看该作者
本帖最后由 mdyblog 于 2015-5-19 12:42 编辑
chiannet 发表于 2015-5-19 12:18
删除注册表
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2]
问 ...


SUBJ %LETTER%
试试改为:
SUBJ  * %LETTER%

SHOW *-  ,%LETTER%       也可以。

点评

最终整理成这个代码,经X86 X64 ramos实测,可能硬件环境有限,测试的几台机子效果尚可。请M大再审一下。  详情 回复 发表于 2015-5-19 14:45
回复

使用道具 举报

9488#
发表于 2015-5-19 14:45:13 | 只看该作者
mdyblog 发表于 2015-5-19 12:34
SUBJ %LETTER%
试试改为:
SUBJ  * %LETTER%


ORDDISK.7z (766 Bytes, 下载次数: 9)

最终整理成这个代码,经X86 X64 ramos实测,可能硬件环境有限,测试的几台机子效果尚可。请M大再审一下。
回复

使用道具 举报

9489#
发表于 2015-5-20 14:18:26 | 只看该作者
应该算是BUG,EXEC 捕获命令输出,如果输出的内容有特别字符会失败。

相关例子在附件。



test.zip

1.07 KB, 下载次数: 7

点评

EXEC* -raw &info=cmd.exe /c type aa.log 后面自己在处理&info  详情 回复 发表于 2015-5-20 14:23
回复

使用道具 举报

9490#
 楼主| 发表于 2015-5-20 14:23:09 | 只看该作者
本帖最后由 mdyblog 于 2015-5-20 14:25 编辑
chenall 发表于 2015-5-20 14:18
应该算是BUG,EXEC 捕获命令输出,如果输出的内容有特别字符会失败。

相关例子在附件。


EXEC*  -raw &info=cmd.exe /c type aa.log
后面自己在处理&info

  1. LOGS * CONOUT$
  2. EXEC* -raw &info=cmd.exe /c type aa.log
  3. CODE **-GBK,&info,**-UNI,&info2  
  4. mess. %&info2%
  5. READ aa.log,**,&info
  6. mess. %&info%
复制代码

点评

谢谢,测试OK。  详情 回复 发表于 2015-5-20 14:35
回复

使用道具 举报

9491#
发表于 2015-5-20 14:35:04 | 只看该作者
mdyblog 发表于 2015-5-20 14:23
EXEC*  -raw &info=cmd.exe /c type aa.log
后面自己在处理&info

谢谢,测试OK。
回复

使用道具 举报

9492#
发表于 2015-5-20 17:33:26 | 只看该作者
用_SUB WinMenu, L%WinL%T%WinTOP%W%WinW%H%WinH%,,,,-#,,-top定义一个窗口,-top确实能保证窗口在最前面,但对任务栏好像无效。就是说任务栏仍然能挡住窗口。
有办法让窗口总是在任务栏前面吗?

点评

-top确实能保证窗口在最前面 -------------------- 不能的。 只是 “在最前面”这个一类。 这个一类可以有多个,彼此之间不保证顺序。  详情 回复 发表于 2015-5-20 22:45
回复

使用道具 举报

9493#
 楼主| 发表于 2015-5-20 22:45:29 | 只看该作者
sp_star 发表于 2015-5-20 17:33
用_SUB WinMenu, L%WinL%T%WinTOP%W%WinW%H%WinH%,,,,-#,,-top定义一个窗口,-top确实能保证窗口在最前面, ...

-top确实能保证窗口在最前面
--------------------
不能的。
只是  “在最前面”这个一类。

这个一类可以有多个,彼此之间不保证顺序。

点评

谢谢!就是说任务栏也是"top"这一类,所以没什么办法,对吧?  详情 回复 发表于 2015-5-20 22:52
回复

使用道具 举报

9494#
发表于 2015-5-20 22:52:26 | 只看该作者
mdyblog 发表于 2015-5-20 22:45
-top确实能保证窗口在最前面
--------------------
不能的。

谢谢!就是说任务栏也是"top"这一类,所以没什么办法,对吧?

点评

_SUB WinMenu, L%WinL%T%WinTOP%W%WinW%H%WinH%,,,,-#,,-top -forcenomin 试试  详情 回复 发表于 2015-5-20 22:58
回复

使用道具 举报

9495#
 楼主| 发表于 2015-5-20 22:58:34 | 只看该作者
sp_star 发表于 2015-5-20 22:52
谢谢!就是说任务栏也是"top"这一类,所以没什么办法,对吧?


_SUB WinMenu, L%WinL%T%WinTOP%W%WinW%H%WinH%,,,,-#,,-top  -forcenomin
试试
或者开个定时器,不断置顶。

点评

-forcenomin试过,没什么用。 开个定时器,不断置顶: 怎样才能置顶一个窗口呢?能不能给个简单的例子? 谢谢!  详情 回复 发表于 2015-5-20 23:01
回复

使用道具 举报

9496#
发表于 2015-5-20 23:01:33 | 只看该作者
mdyblog 发表于 2015-5-20 22:58
_SUB WinMenu, L%WinL%T%WinTOP%W%WinW%H%WinH%,,,,-#,,-top  -forcenomin
试试
或者开个定时器,不 ...

-forcenomin试过,没什么用。
开个定时器,不断置顶:
怎样才能置顶一个窗口呢?能不能给个简单的例子? 谢谢!

点评

┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ ┃ │命令│'POS' '位置' '大小' '层级'  详情 回复 发表于 2015-5-20 23:46
回复

使用道具 举报

9497#
 楼主| 发表于 2015-5-20 23:46:30 | 只看该作者
sp_star 发表于 2015-5-20 23:01
-forcenomin试过,没什么用。
开个定时器,不断置顶:
怎样才能置顶一个窗口呢?能不能给个简单的例子 ...



┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃    │命令│'POS' '位置' '大小' '层级'                                                                  ┃
┃    ├──┼──────────────────────────────────────────────┨
┃位置│参数│ENVI @窗口和控件名.POS=左:上:[@]宽:高:层级:透明度:前置:激活:父窗口ID::客宽:客高  //@实际宽高┃
┃大小│    │ENVI @窗口和控件名.POS=?[@]左名:上名:[@]宽名:高名:X0名:Y0名::激活名:父ID名:客宽:客高  //查询┃
┃层级│    │ENVI @@POS=窗口ID:左:上:[@]宽:高:层级:[$]透明度:前置:激活:父窗口ID::客宽:客高               ┃
┃    │    │ENVI @@POS=?[@]窗口ID:左名:上名:宽名:高名:X0名:Y0名::激活名:父窗ID名:客户宽名:客户高名//查询┃
┃    │    │格式1为设置。层级1=底层,2=取消最顶层,3=顶层,4=钉在最顶层。某位空着或*不变               ┃
┃    │    │前置1为前置,激活1为激活。 透明度前的$表示0-255格式。                                       ┃
┃    │    │格式2为查询,(X0,Y0)为客户区起点相对坐标。某位可空着。?@返回屏幕绝对坐标。@宽返回实际宽高   ┃
┃    ├──┼──────────────────────────────────────────────┨
┃    │示例│ ENVI @WIN1.POS=%X1%:300:300:180:4  //移动改变大小,钉在最顶层                              ┃
┃    │    │ ENVI @B1.POS=?X2:Y2:W2:H2  //查询大小                                                      ┃
┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫

ENVI @this.POS=::::4  //钉在最顶层


点评

多谢M大! 定时器加ENVI @this.POS=::::4 轻松搞定。  详情 回复 发表于 2015-5-21 10:12
请教一下,开方怎么写呢? calc &&v=sqrt(16) mess "%&v%" ============================================ PECMD说明示例中的3处问题: 1.e是自然常数吧?c才是欧拉常数 2. CALC V= &v1=1+3;%&v  详情 回复 发表于 2015-5-21 06:12
回复

使用道具 举报

9498#
发表于 2015-5-21 06:12:34 | 只看该作者
本帖最后由 527104427 于 2015-5-21 06:18 编辑
mdyblog 发表于 2015-5-20 23:46
┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ...


请教一下,开方怎么写呢?开3次方或者4次方呢?

calc &&v=sqrt(16)
mess "%&v%"


============================================

PECMD说明示例中的3处问题:

1.e是自然常数吧?c才是欧拉常数

2.  CALC V=  &v1=1+3;%&v1%*100
     MESS %V%   //什么也没有

3.  CALC =  &v1=1+3;%&v1%*100
     MESS %V%   //提示出错

点评

1:改了。 原来 &v1 有个&,不当变量名。 改好了。支持&v1。 2: calc &&v=pow(16,1/3) mess "%&v%"  详情 回复 发表于 2015-5-21 06:56
回复

使用道具 举报

9499#
 楼主| 发表于 2015-5-21 06:56:48 | 只看该作者
本帖最后由 mdyblog 于 2015-5-21 07:06 编辑
527104427 发表于 2015-5-21 06:12
请教一下,开方怎么写呢?开3次方或者4次方呢?

calc &&v=sqrt(16)


1:改了。
原来 &v1 有个&,不当变量名。sqrt反当了变量名。
改好了。支持&v1。


2:
calc &&v=sqrt(16)
calc &&v=pow(16,1/2)
calc &&v=pow(16,1/3)
mess "%&v%"

点评

还有一个问题: CALC -base=10 &&v1=789456456456332190056 MESS %&v1% 怎么会变成负数了?是否有什么限制呢  详情 回复 发表于 2015-5-21 18:23
ENVI &&v=1 LOOP #1=1, { MESS %&v% CALC &&v=%&v%+1 } 上面的代码 &&v 不会累加,将 CALC &&v 去掉一个 & 就可以,不知道这否正常?  详情 回复 发表于 2015-5-21 16:25
回复

使用道具 举报

9500#
发表于 2015-5-21 10:12:39 | 只看该作者
mdyblog 发表于 2015-5-20 23:46
┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ...

多谢M大!
定时器加ENVI @this.POS=::::4  轻松搞定。
回复

使用道具 举报

9501#
发表于 2015-5-21 16:25:11 | 只看该作者
本帖最后由 527104427 于 2015-5-21 18:23 编辑
mdyblog 发表于 2015-5-21 06:56
1:改了。
原来 &v1 有个&,不当变量名。sqrt反当了变量名。
改好了。支持&v1。


ENVI &&v=1
LOOP #1=1,
{
        MESS %&v%
        CALC &&v=%&v%+1
}



上面的代码  &&v 不会累加,将 CALC &&v 去掉一个 &  就可以,不知道这否正常?





















点评

正常。 CALC &&v=%&v%+1 会在子级创建一个新的PE变量,v。 这样上级的v没有修改在退出}时,会销毁新的v. 可以: ENVI &&v=1 LOOP #1=1, { MESS %&v% CALC &v=%&v%+1 } 还可以: EN  详情 回复 发表于 2015-5-21 19:12
回复

使用道具 举报

9502#
发表于 2015-5-21 18:23:02 | 只看该作者
mdyblog 发表于 2015-5-21 06:56
1:改了。
原来 &v1 有个&,不当变量名。sqrt反当了变量名。
改好了。支持&v1。


还有一个问题:

CALC -base=10 &&v1=789456456456332190056
MESS %&v1%


怎么会变成负数了?是否有什么限制呢




























点评

最大的正整数:0x7FFFFFFFFFFFFFFF=9223372036854775800 /////////////////////// 9223372036854775800 789456456456332190056整整多2位。 -base=10 会变成 整数模式。  详情 回复 发表于 2015-5-21 19:08
回复

使用道具 举报

9503#
 楼主| 发表于 2015-5-21 19:08:12 | 只看该作者
527104427 发表于 2015-5-21 18:23
还有一个问题:

CALC -base=10 &&v1=789456456456332190056

最大的正整数:0x7FFFFFFFFFFFFFFF=9223372036854775800
///////////////////////
   9223372036854775800
789456456456332190056整整多2位。

-base=10 会变成 整数模式。




点评

是否把超出运算范围的结果变成零呢?  详情 回复 发表于 2015-5-21 19:39
回复

使用道具 举报

9504#
 楼主| 发表于 2015-5-21 19:12:00 | 只看该作者
527104427 发表于 2015-5-21 16:25
ENVI &&v=1
LOOP #1=1,
{

正常。
CALC &&v=%&v%+1
会在子级创建一个新的PE变量,v。
这样上级的v没有修改在退出}时,会销毁新的v.
可以:
ENVI &&v=1
LOOP #1=1,
{
         MESS %&v%
         CALC &v=%&v%+1
}
还可以:
ENVI &&v=1
LOOP #1=1,
{*   //不生成新的级别。
         MESS %&v%
         CALC &&v=%&v%+1
}
回复

使用道具 举报

9505#
发表于 2015-5-21 19:39:04 | 只看该作者
mdyblog 发表于 2015-5-21 19:08
最大的正整数:0x7FFFFFFFFFFFFFFF=9223372036854775800
///////////////////////
   9223372036854775 ...


是否把超出运算范围的结果变成零呢?感觉这样比较合理。

点评

计算中有这种截断的 运算。 至于超出范围,使用者注意就是了。 计算机编程都这样的。  详情 回复 发表于 2015-5-21 23:41
回复

使用道具 举报

9506#
 楼主| 发表于 2015-5-21 23:41:25 | 只看该作者
527104427 发表于 2015-5-21 19:39
是否把超出运算范围的结果变成零呢?感觉这样比较合理。


这是编程。不是终端用户程序。

计算中有这种截断的 运算。

至于超出范围,使用者注意就是了。

计算机编程都这样的。
回复

使用道具 举报

9507#
发表于 2015-5-22 11:43:32 | 只看该作者
请教一下如下设置控件的TIPS

envi @a.msg=0x02A1:  CALL TIP 0
envi @b.msg=0x02A1:  CALL TIP 1
envi @c.msg=0x02A1:  CALL TIP 3

现在我想批量设置,而不是一行一行添加有办法吗?我看了示例和帮助找不到好的办法。
本来我的想按如下方法批量设置的失败。

  1. ENVI. &T=0 a\n1 b\n2 c
  2. FORX *NL &T,&&x,CALL SETTIP %&&x%

  3. _SUB SETTIP
  4. envi @%2.msg=0x02A1:  CALL TIP %1
  5. _END
复制代码

点评

ENVI. &&T=0 a\n1 b\n2 c FORX *NL &T,&&xi, {* MSTR &&i,&&nm=%&xi% SET &_cmd=envi @%&nm%.msg=0x02A1: CALL TIP %&i% %&_cmd% }  详情 回复 发表于 2015-5-22 13:22
回复

使用道具 举报

9508#
 楼主| 发表于 2015-5-22 13:22:53 | 只看该作者
chenall 发表于 2015-5-22 11:43
请教一下如下设置控件的TIPS

envi @a.msg=0x02A1:  CALL TIP 0


ENVI. &&T=0 a\n1 b\n2 c
FORX *NL &T,&&xi,
{*
    MSTR &&i,&&nm=<~1*>%&xi%
    SET &_cmd=envi @%&nm%.msg=0x02A1:  CALL TIP %&i%
    %&_cmd%
}


///////////
注意 %&_cmd%的用法。
这样就很灵活了。

点评

原来还能这样,谢谢! 另外再问个问题,对于LIST框有没有办法在下拉选择的时候显示提示框 就是鼠标移到某个下拉条目时,就显示对尖的条目的提示信息。 印像中好像在哪里有见过类似的,现在找不到了。  详情 回复 发表于 2015-5-22 13:45
回复

使用道具 举报

9509#
发表于 2015-5-22 13:45:32 | 只看该作者
mdyblog 发表于 2015-5-22 13:22
ENVI. &&T=0 a\n1 b\n2 c
FORX *NL &T,&&xi,
{*

原来还能这样,谢谢!

另外再问个问题,对于LIST框有没有办法在下拉选择的时候显示提示框

就是鼠标移到某个下拉条目时,就显示对尖的条目的提示信息。

印像中好像在哪里有见过类似的,现在找不到了。

点评

结合图说吧。 否则不明白你说啥。  详情 回复 发表于 2015-5-22 14:01
回复

使用道具 举报

9510#
 楼主| 发表于 2015-5-22 14:01:39 | 只看该作者
chenall 发表于 2015-5-22 13:45
原来还能这样,谢谢!

另外再问个问题,对于LIST框有没有办法在下拉选择的时候显示提示框

结合图说吧。 否则不明白你说啥。

点评

上个图,看下。 [attachimg]217014[/attachimg]  详情 回复 发表于 2015-5-22 14:40
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-26 03:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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