无忧启动论坛

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

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

    [复制链接]
3091#
 楼主| 发表于 2012-5-30 00:40:02 | 只看该作者
原帖由 2012abc19701 于 2012-5-29 23:53 发表
版本是不是下图的『6.1.7600.16385』144173



PECMD2012.1.69.69_win32.多窗口多线程-14.sfx.zip:

┃    │    │※查询文件版本: ENVI ?变量名=FVER,文件名                                                   ┃


envi FW_mlqa=pecmd.exe
SET ?VER=FVER,%FW_mlqa%
MESS %&VER%@#OK
回复

使用道具 举报

3092#
 楼主| 发表于 2012-5-30 05:42:17 | 只看该作者
原帖由 clonecd 于 2012-5-30 00:58 发表
楼主麻烦帮我看一下关于WM_LBUTTONDOWN
在附件里。144174




程序没有错。
发现在TABL  随便什么参数正常了。
修正。
-15



[ 本帖最后由 2012abc19701 于 2012-5-30 05:49 编辑 ]
回复

使用道具 举报

3093#
 楼主| 发表于 2012-5-30 07:24:20 | 只看该作者
原帖由 2012abc19701 于 2012-5-30 05:42 发表
你的程序没有错。
发现在TABL  后随便加什么参数就正常了。
已修正。 -15 144176

PECMD2012.1.69.69_win32.多窗口多线程-16.sfx.zip:

1》 -sps:列以连续的空字符间隔  

可以直接支持以空字符间隔的列, 连续空字符间隔 算一个间隔


  TABL -sps TABL1,L18T15W440H150,%&TITLE%,%vFILE%, 0x101C0  //USERCTRL
// %vFILE% 不用为TAB 间隔内容   %vFORM%  
//TABL  TABL1,L18T15W440H150,%&TITLE%,%vFORM%, 0x1C0  //USERCTRL



2》 0x10000只能选择一行  //这样比较清楚

[ 本帖最后由 2012abc19701 于 2012-5-30 07:26 编辑 ]
回复

使用道具 举报

3094#
发表于 2012-5-30 07:58:33 | 只看该作者
原帖由 2012abc19701 于 2012-5-30 00:40 发表



PECMD2012.1.69.69_win32.多窗口多线程-14.sfx.zip:

┃    │    │※查询文件版本: ENVI ?变量名=FVER,文件名                                                   ┃


envi FW_mlqa=pecmd.exe
...



非常正确,谢谢了楼主。这样查询太方便了,所以还请楼主扩展一下这个功能:

1、将这个查询扩展可以查询文件属性的各个项目,如文件版本、文件名称、文件创建时
   间、修改时间、访问时间等 win属性显示的那些项目,以及常规的四种属性。还有个
   人觉得,这个功能整合到“SITE”命令可能会比较好些,因为这个命令本来就是可以
   设置文件属性的;

2、列磁盘设备类型的范例很好,但是不知道为什么,就是无法将我的内存盘识别为内存盘
   “DRIVE_RAMDISK”?一样识别为“DRIVE_FIXED”,不知何解?


[ 本帖最后由 988668 于 2012-5-30 08:04 编辑 ]
回复

使用道具 举报

3095#
 楼主| 发表于 2012-5-30 08:15:19 | 只看该作者
原帖由 clonecd 于 2012-5-30 08:08 发表
这两个功能都很实用。


1.可以放到SITE
   集体增加什么,具体点,给个图,信息栏目和格式。




2. 可以用 FORM的扩展用法, 再判断 其总线(BUS)类型。
FDRV DRVS=*: //返回系统所有盘符,返回值是 C: D: E: F: .... 的形式。
ENVI$  NL=0d 0a
ENVI MSG=
FORX * %DRVS%,&d,
{
        FORM &T,&B=%&d%
        ENVI MSG=%MSG%%NL%%&d%=%&T%,%&B%
}
MESS. %MSG%@#OK
回复

使用道具 举报

3096#
发表于 2012-5-30 08:57:10 | 只看该作者
原帖由 2012abc19701 于 2012-5-30 08:15 发表


1.可以放到SITE
   集体增加什么,具体点,给个图,信息栏目和格式。




2. 可以用 FORM的扩展用法, 再判断 其总线(BUS)类型。
FDRV DRVS=*: //返回系统所有盘符,返回值是 C: D: E: F: .... 的形 ...


----------------
不行,使用了扩展得到信息如下图,但说明上是已经列出类型可以的,我把内存盘工具上传
给楼主,你有时间就研究一下看看。
图1:
命令器的说明:※命令的返回值为以下字符串: DRIVE_UNKNOWN、DRIVE_NO_ROOT_DIR、DRIVE_REMOVABLE、DRIVE_FIXED、FUNCTION_ERROR、DRIVE_REMOTE、DRIVE_CDROM、DRIVE_CDROMUSB、DRIVE_RAMDISK、DRIVE_USBFLASH、

RAMDISK软件: ramdisk.rar (133.83 KB, 下载次数: 13)

具体的如图:
图2: 图3:   图4:

[ 本帖最后由 988668 于 2012-5-30 09:00 编辑 ]
回复

使用道具 举报

3097#
 楼主| 发表于 2012-5-30 09:25:03 | 只看该作者

回复 #3204 988668 的帖子

W:  就是 DRVE_RAMDRISK吧
磁盘类型为DRIVE_FIXED,  其总线类型为0(UNKNOWN), 显然不是真正的物理磁盘。

虚拟磁盘没有一定的标准, 由驱动程序决定。

大概由应用程序 通过排除法,确定。(PECMD不能写死)。
回复

使用道具 举报

3098#
 楼主| 发表于 2012-5-30 09:32:05 | 只看该作者
原帖由 clonecd 于 2012-5-30 08:21 发表


楼主这个功能增加了,引来了一个新的问题。
仅以TAB(或连续多个TAB)作为列间隔的参数是什么?要不然某个单元内容含空格的显示就有问题了。
因为【16】里默认的是TAB和连续的空格都可以做列间隔。


PECMD2012.1.69.69_win32.多窗口多线程-17.sfx.zip:
修正。
默认(没有-sps): 仅以一个TAB(一个) 作为列间隔的参数。



另外:
0x80禁止水平滚动条,0x100禁止垂直滚动条
默认为自动滚动条 (按需出现)


回复

使用道具 举报

3099#
发表于 2012-5-30 10:07:07 | 只看该作者
回复

使用道具 举报

3100#
发表于 2012-5-30 12:01:43 | 只看该作者
原帖由 2012abc19701 于 2012-5-30 09:25 发表
W:  就是 DRVE_RAMDRISK吧
磁盘类型为DRIVE_FIXED,  其总线类型为0(UNKNOWN), 显然不是真正的物理磁盘。

虚拟磁盘没有一定的标准, 由驱动程序决定。

大概由应用程序 通过排除法,确定。(PECMD不能 ...



谢谢了,明白
回复

使用道具 举报

3101#
 楼主| 发表于 2012-5-30 13:26:22 | 只看该作者
原帖由 clonecd 于 2012-5-30 09:00 发表
以下代码是想先显示窗口,然后全盘搜索文件,再把结果赋值给下拉框。
因为搜索文件需要花一定的时间,所以如果先搜索好文件再显示窗口,会让人觉得程序运行得慢。
不过我赋值给下拉框总是不成功,还请指点 ...


用多线程和消息。
多线程.界面长时间初始化.WCS:
CALL SHOWFIRST

_SUB SHOWFIRST,W480H360,文件列表,
    ENVI &&I=0
    ENVI &&TXTLS=
    ENVI &&TXTLS1=
    LIST TXTLIST,L41T2W385H226,    ,
    LABE LABE1,L92T298W293H21,LABE3,,
    ENVI @SHOWFIRST.MSG=#1: CALL  OnMsg1   
    TIME Timer1,200, CALL OnTimer1
    CALL OnTimer1
    THREAD*  FINDFILE
_END

_SUB OnTimer1
    TEAM ENVI  @LABE1=请等待 %&I% ...| CALC &I= %&I% + 0.2#1
_END

_SUB OnMsg1
    TEAM ENVI @Timer1=0| ENVI @LABE1=搜索完毕,写入窗口。。。
    ENVI @TXTLIST=%&TXTLS%
    ENVI @TXTLIST=:%&TXTLS1%
    ENVI @LABE1=
_END

_SUB  FINDFILE
    FORX /S T:\*.TXT,ANYTXT,1,  ENVI &TXTLS1=%ANYTXT%
    FORX /S T:\*.TXT,ANYTXT,0,  ENVI &TXTLS=%&TXTLS%|%ANYTXT%
    MSTR &TXTLS=2,0,%&TXTLS%
    ENVI @Timer1=0   
    ENVI @SHOWFIRST.POSTMSG=#1  //通知完成
_END
  

多线程.界面长时间初始化.WCS.zip

588 Bytes, 下载次数: 18, 下载积分: 无忧币 -2

回复

使用道具 举报

3102#
 楼主| 发表于 2012-5-30 15:43:02 | 只看该作者

回复 #3212 clonecd 的帖子

美观点。 没有问题也不大。

第一个 要一个周期后才发作。
这之前显示什么内。
第2个,来初始化一下, 而且,保持一致。
简单的处理方式。
回复

使用道具 举报

3103#
 楼主| 发表于 2012-5-30 15:45:07 | 只看该作者

PECMD2012.1.69.69_win32.多窗口多线程-18.sfx.zip

原帖由 2012abc19701 于 2012-5-30 15:43 发表
美观点。 没有问题也不大。

PECMD2012.1.69.69_win32.多窗口多线程-18.sfx.zip:



LIST 增加:

┃■状态: 数字,负号为灰色禁用。0x4可编辑列表,0x200简单列表。0x10不可见。
┃        
0x100自动垂直滚动条 。0x400自动排序。0x800大写。0x1000小写。                                         



[ 本帖最后由 2012abc19701 于 2012-5-30 15:46 编辑 ]
回复

使用道具 举报

3104#
发表于 2012-5-30 16:48:58 | 只看该作者
原帖由 2012abc19701 于 2012-5-30 15:45 发表

PECMD2012.1.69.69_win32.多窗口多线程-18.sfx.zip:



LIST 增加:

┃■状态: 数字,负号为灰色禁用。0x4可编辑列表,0x200简单列表。0x10不可见。
┃        0x100自动垂直滚动条 。0x400自动排序 ...



呵呵,真是勤奋啊。……但请 教 楼主几个问题:
1、我设立了LABE控件的水平/垂直滚动条,但是当信息已经超过了显示范围后,没有作用?
图1: 鼠标拉不动,没反应了
2、FILE --progress %fileslt0% ->%&Ltmp%\ //这个--progress参数很新鲜,但是不会整?不知怎么用?
3、※EXEC*[1|N|-] NAME= 表示将程序的标准输出存入指定变量NAME中,强制为等待方式。1为只取第一行;
     N为直接去掉换行,合为一行。-为去掉最后的换行,否则保持原样。太多的数据必须用PE变量保
     存(如&ABC)。NAME可以是 @控件名,这样实时显示在控件上,NAME+=为追加模式;
   *这个很厉害啊,不过,折腾不出什么名堂啊?楼主可以详细给一两个范例吗?
4、新版的按钮多行失效了,一直到f18版,所有初始效果都失效,请楼主看看
图2:

[ 本帖最后由 988668 于 2012-5-30 17:58 编辑 ]
回复

使用道具 举报

3105#
 楼主| 发表于 2012-5-30 18:18:41 | 只看该作者
原帖由 988668 于 2012-5-30 16:48 发表
呵呵,真是勤奋啊。……但请 教 楼主几个问题:
1、我设立了LABE控件的水平/垂直滚动条,但是当信息已经超过了显示范围后,没有作用?
图1:144240 鼠标拉不动,没反应了
2、FILE --progress %fileslt ...




FILE  --progress H:\NET7PE1.ISO=>H:\NET7PE1_2.ISO
命令行:
C:\> PECMD "FILE    --progress H:\NET7PE1.ISO=>H:\NET7PE1_2.ISO"
建议在PECMDEDIT  中测试、实验命令(和WCS脚本一致),少在命令行 实验。

效果:

回复

使用道具 举报

3106#
 楼主| 发表于 2012-5-30 18:19:47 | 只看该作者

回复 #3216 988668 的帖子

>>我设立了LABE控件的水平/垂直滚动条,但是当信息已经超过了显示范围后,没有作用?

可动: 用EDIT,或SWIN
不可动: 用LABE
回复

使用道具 举报

3107#
 楼主| 发表于 2012-5-30 18:23:59 | 只看该作者

回复 #3216 988668 的帖子

3、※EXEC*[1|N|-] NAME= 表示将程序的标准输出存入指定变量NAME中,强制为等待方式。1为只取第一行;
      N为直接去掉换行,合为一行。-为去掉最后的换行,否则保持原样。太多的数据必须用PE变量保
      存(如&ABC)。NAME可以是 @控件名,这样实时显示在控件上,NAME+=为追加模式;
    *这个很厉害啊,不过,折腾不出什么名堂啊?楼主可以详细给一两个范例吗?

EXEC*1    &ACK=!cmd.exe echo HELLO
MESS.    [%&ACK%]@#OK


EXEC*N    &VER=!cmd.exe VER
MESS.    [%&VER%]@#OK

EXEC*    &MSG=!cmd.exe dir /s /b D:\*.INI
MESS.    [%&MSG%]@#OK
回复

使用道具 举报

3108#
 楼主| 发表于 2012-5-30 19:17:05 | 只看该作者

回复 #3216 988668 的帖子

按钮多行:
PECMD2012.1.69.69_win32.多窗口多线程-19.sfx.zip
回复

使用道具 举报

3109#
 楼主| 发表于 2012-5-30 19:22:31 | 只看该作者

回复 #3220 clonecd 的帖子

POSTMSG  SENDMSG  主要是消息号, 另外还可带2个参数,以传递更多信息。
本例,只要消息号就够了。(包内的已没有参数)
2个参数可省(实际用0代)。

具体是否带参数, 由消息本身决定。

自定义消息,一般为方便,不带参数;特别的,由实际需要多少信息而定。
回复

使用道具 举报

3110#
发表于 2012-5-30 20:13:05 | 只看该作者
USB 的问题:

无法弹出( 系统的,第三方的,PECMD托盘的, 都不行)

准确的说: 是弹出了,但是,马上有发现了.(第三方那个,看是弹出了,但是盘符还在,U盘灯不灭)

69-56(没处理INIT的) PECMD能弹出,不再发现,但是,灯也不灭

现在的版本都不行
回复

使用道具 举报

3111#
发表于 2012-5-30 20:33:49 | 只看该作者

回复 #3224 dvd008 的帖子

init未加参数。

我这里实机测试可以弹出,在资源管理器U盘盘符点右键弹出,无法删除盘符,需拔出U盘才会删除盘符。用系统自带的托盘图标弹出可以删除盘符。

[ 本帖最后由 info 于 2012-5-30 20:48 编辑 ]
回复

使用道具 举报

3112#
 楼主| 发表于 2012-5-30 20:53:22 | 只看该作者

回复 #3224 dvd008 的帖子

是不是开启了 USB盘自动加载?
回复

使用道具 举报

3113#
发表于 2012-5-30 21:09:54 | 只看该作者
TEAM EXEC !%SystemRoot%\system32\winpeshl.exe|INIT|FONT %SystemRoot%\Fonts,0
     TEAM EXEC !%SystemRoot%\system32\winpeshl.exe|INIT IU,4000|FONT %SystemRoot%\Fonts,0

这两个,都是。
回复

使用道具 举报

3114#
 楼主| 发表于 2012-5-30 21:38:07 | 只看该作者

回复 #3228 clonecd 的帖子

已有啊!
HELP  TABL
的 ENVI @名称.Val=数据

数据部分能留空
格式数据部分也能留空

ENVI @名称.Val=数据
添加数据或列。
添加数据、行  和  修改数据一致。
修改数据 见包内示例
回复

使用道具 举报

3115#
 楼主| 发表于 2012-5-30 21:41:22 | 只看该作者

回复 #3227 dvd008 的帖子

可能需要记录下来,那些是主动哪些卸载的。不要再自动加载。
回复

使用道具 举报

3116#
 楼主| 发表于 2012-5-30 22:20:15 | 只看该作者

回复 #3227 dvd008 的帖子

试试 PECMD2012.1.69.69_win32.多窗口多线程-20.sfx.zip
回复

使用道具 举报

3117#
 楼主| 发表于 2012-5-30 23:41:01 | 只看该作者

回复 #3232 clonecd 的帖子

ENVI @名称.Val=行号,%str%   //一行

ENVI @名称.Val=行号.列号,%str%   //一单元


TABL:

┃    ├──┼──────────────────────────────────────────────┨
┃    │备注│※TABL命令一般位于_SUB命令和_END命令之间,参照_SUB、CALL命令说明。                          ┃
┃    │    │※可用"ENVI @名称.Enable=数值"来设置可用状态;0为不可用状态,1为可用状态。                  ┃
┃    │    │※可用"ENVI @名称.Visable=数值"来设置可见状态;0为不可见,1为可见。                         ┃
┃    │    │※可用"ENVI @名称.Sel=行号"来选择某行。行号,列号从1开始(下同)。                            ┃
┃    │    │※可用"ENVI @名称.Sel=?
变量名"来获得当前选择行号。<=0没有选择。*返回全部选择行空格分隔。 ┃
┃    │    │※可用"ENVI @名称.Val=?*,[行数变量名][,列数变量名]"来获得当前选择行数和列数。               ┃
┃    │    │※可用"ENVI @名称.Val=?*.*,变量名"来获得全部数据。行间“\r\n”                              ┃
┃    │    │※可用"ENVI @名称.Val=?行号[.列号],变量名"来查询指定行/单元的内容。各列TAB键间隔(下同)。    ┃
┃    │    │※可用"ENVI @名称.Val=行号.列号,值"来设置指定单元的内容。自动增加行。                       ┃
┃    │    │※可用"ENVI @名称.Val=行号,值"来设置指定行的内容。自动增加行。间隔TABL开关指定。行号0为最后 ┃
┃    │    │                新增一行 。                                                                 ┃
┃    │    │※可用"ENVI @名称.Val=-行号"来删除该行。                                                    ┃
┃    │    │※可用"ENVI @名称.Val=.-列号"来删除该列。                                                   ┃
┃    │    │※可用"ENVI @名称.Val=+,[=|+]列宽度:列标题"来增加列。                                       ┃
┃    │    │※可用"ENVI @名称.Check=?行号,变量名"来查询行是否勾选。                                     ┃
┃    │    │※可用"ENVI @名称.Check=行号,勾选"来设定行是否勾选。 0:不勾选,1:勾选。                   ┃
┃    │    │※可用"ENVI @名称.Color=列号,颜色"来设定列颜色。=?列号,变量名来查询;无则返空。             ┃
┃    │    │※可用"ENVI @名称.Color=*行号,颜色"来设定行颜色。=?*行号,变量名来查询,无则返空。优先于列颜色┃
┣━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫




[ 本帖最后由 2012abc19701 于 2012-5-31 00:35 编辑 ]
回复

使用道具 举报

3118#
 楼主| 发表于 2012-5-31 00:00:48 | 只看该作者
原帖由 clonecd 于 2012-5-30 23:31 发表
楼主帮我看看附件里还是关于多线程的问题,谢谢了。
144276


改好了。
把EDIT 放到 LIST上, 显示load ...过程。 挺妙的!

还是关于多线程-回复.zip

795 Bytes, 下载次数: 20, 下载积分: 无忧币 -2

回复

使用道具 举报

3119#
 楼主| 发表于 2012-5-31 00:50:08 | 只看该作者

回复 #3236 clonecd 的帖子

子过程名 本身没有限制。
是命令 词

是THREAD 的调用的命令,
FIND_.....
没有CALL , 就猜测。命令起始为命令词,  一般命令词主体部分没有_ $等,可以是附加后缀
FIND_。。。   被拆为 FIND 命令 了; _JPG当作FIND 命令词的后缀。
因为 命令词 优先于 函数名等。


命令词 后面的不受此影响。

含有特别字符  可以 CALL  就没有限制了。

新版 _  也放入命令词主体。
命令词主体: A-Z a-z 0-9 汉字 _
$#@+-|^&等都是后缀开始标志


可以
THREAD*  CALL  FIND_JPG
THREAD*  CALL  FIND-JPG


[ 本帖最后由 2012abc19701 于 2012-5-31 08:35 编辑 ]
回复

使用道具 举报

3120#
 楼主| 发表于 2012-5-31 01:31:06 | 只看该作者
原帖由 clonecd 于 2012-5-31 00:26 发表
最多就只能一行一行的来啊?
我以为一个多行字串一下子就可以赋值多行呢。

PECMD2012.1.69.69_win32.多窗口多线程-21.sfx.zip:
TABL 一次可以加入
※可用"ENVI @名称.Val=起始行号*,值"来设置从指定行开始的内容。自动增加行。间隔TABL开关指定。行号0为紧接最后开始新增 。换行符 回车换行符间隔行。

[ 本帖最后由 2012abc19701 于 2012-5-31 08:33 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-7-16 14:15

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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