无忧启动论坛

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

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

    [复制链接]
4921#
发表于 2013-3-16 22:34:07 | 只看该作者

回复 #5243 mdyblog 的帖子

谢谢可以啦,在_SUB外是否可以关闭它,在_SUB内是KILL \ ,在外用KILL不行。
回复

使用道具 举报

4922#
 楼主| 发表于 2013-3-16 23:11:14 | 只看该作者
原帖由 spadek 于 2013-3-16 22:34 发表
谢谢可以啦,在_SUB外是否可以关闭它,在_SUB内是KILL \ ,在外用KILL不行。


KILL  \1111         //标题1111
KILL  @Windows1  
KILL  @@窗口ID
回复

使用道具 举报

4923#
 楼主| 发表于 2013-3-17 08:28:40 | 只看该作者

BCDTOOL开源版 (GUI) [X64可用]

BCDTOOL开源版.zip

[ 本帖最后由 mdyblog 于 2013-3-18 18:20 编辑 ]

Snap1.gif (15.6 KB, 下载次数: 170)

Snap1.gif

BCDTOOL开源版.zip

3.69 KB, 下载次数: 4, 下载积分: 无忧币 -2

回复

使用道具 举报

4924#
发表于 2013-3-17 09:09:57 | 只看该作者
赞一个。。。。。。!
回复

使用道具 举报

4925#
发表于 2013-3-17 09:17:44 | 只看该作者
Pecmd已经成为了一个强大的编程工具,堪比c++,感慨楼主的功力啊!
回复

使用道具 举报

4926#
发表于 2013-3-17 09:36:04 | 只看该作者

回复 #5245 mdyblog 的帖子

_SUB Windows1,W100H100,1111,,,,,-top
LABE Label1,W272H48,2222
ENVI @this.Visable=1
wait 2000
exec cmd.exe
_END
call windows1
KILL \1111
KILL @Windows1

测试无法关闭
回复

使用道具 举报

4927#
发表于 2013-3-17 09:59:56 | 只看该作者
原帖由 spadek 于 2013-3-17 09:36 发表
_SUB Windows1,W100H100,1111,,,,,-top
LABE Label1,W272H48,2222
ENVI @this.Visable=1
wait 2000
exec cmd.exe
_END
call windows1
KILL \1111
KILL @Windows1

测试无法关闭

_SUB Windows1,W100H100,1111,,,,,-top
LABE Label1,W272H48,2222
ENVI @this.Visable=1
wait 2000
exec cmd.exe
call kl
_END
call windows1
_SUB kl
KILL \1111
KILL @Windows1
KILL \
_END
结果测试:KILL \1111 KILL @Windows1 KILL \均能结束窗口

[ 本帖最后由 2011hwo1 于 2013-3-17 10:06 编辑 ]
回复

使用道具 举报

4928#
发表于 2013-3-17 10:10:22 | 只看该作者
原帖由 spadek 于 2013-3-17 09:36 发表
_SUB Windows1,W100H100,1111,,,,,-top
LABE Label1,W272H48,2222
ENVI @this.Visable=1
wait 2000
exec cmd.exe
_END
call windows1
KILL \1111
KILL @Windows1

测试无法关闭

你的测试会在windows1窗口关闭后才执行KILL \1111 KILL @Windows1 所以关不掉

原帖由 spadek 于 2013-3-17 10:14 发表
在内是可以,为什么在外就不行了?

call windows1之后如果windows1窗口没有关闭或者windows1函数没有执行完毕就不会执行后面的内容
除非是:
THREAD  CALL windows1
kill @windows1
KILL \1111
kill \
才能关闭窗口

[ 本帖最后由 2011hwo1 于 2013-3-17 10:25 编辑 ]
回复

使用道具 举报

4929#
发表于 2013-3-17 10:14:13 | 只看该作者

回复 #5251 2011hwo1 的帖子

谢谢解答,知道是怎么回事就行了。

[ 本帖最后由 spadek 于 2013-3-17 10:50 编辑 ]
回复

使用道具 举报

4930#
发表于 2013-3-17 10:18:48 | 只看该作者
(LABE Label1,W272H48,
ENVI @Label1=1

wait 2000
ENVI @Label1=2

wait 2000
ENVI @Label1=3

wait 2000)
How: Label1 not show 1 to 2 to 3 ?? I want PBAR = 10 is Label = wait 10 , wait 2000 PBAR = 50 is Label = wait 50 , ... error Label Not Show 1 to 2 to 3, only show 3
回复

使用道具 举报

4931#
 楼主| 发表于 2013-3-17 12:01:48 | 只看该作者
原帖由 2011Tduy09 于 2013-3-17 10:18 发表
(LABE Label1,W272H48,
ENVI @Label1=1
wait 2000
ENVI @Label1=2
wait 2000
ENVI @Label1=3
wait 2000)
How: Label1 not show 1 to 2 to 3 ?? I want PBAR = 10 is Label = wait 10 , wait 2000  ...

WIN1
_SUB WIN1,W289H249,新窗口1,
    LABE LABE1,L30T64W60H30,0,,
    ENVI @this.Visable=1   //延时之前
    wait 2000
    ENVI @LABE1=10
    wait 2000
    ENVI @LABE1=20
    wait 2000
    ENVI @LABE1=30   
_END


// 还好 PEMD2012 支持你这种 流程式 程序。(4.0上不能运行, 不支持这种写法的)

还支持 在一个子函数 内临时 创建 一自动销毁 的控件。

[ 本帖最后由 mdyblog 于 2013-3-18 18:09 编辑 ]
回复

使用道具 举报

4932#
 楼主| 发表于 2013-3-17 20:25:37 | 只看该作者
PECMD2012.1.75.1-130314-9.多窗口线程孵化版_win32_64.sfx

托盘热键 兼容 4.0 ,  默认就开启了。
Ctrl+Alt+A
Ctrl+Alt+M

但可以 删除。
HOTK Ctrl+Alt+A,**del   //删除默认热键
HOTK Ctrl+Alt+M,**del   //删除默认热键
(PECMD补充说明.doc )
HELP HOTK

也可一以 定义成新的热键,覆盖原来的定义。


[ 本帖最后由 mdyblog 于 2013-3-17 21:28 编辑 ]
回复

使用道具 举报

4933#
发表于 2013-3-18 20:05:38 | 只看该作者

回复 #5255 mdyblog 的帖子

upx现在版本是3.09,比你的压缩率要高,是不是你的upx版本低了点
回复

使用道具 举报

4934#
 楼主| 发表于 2013-3-18 21:29:18 | 只看该作者
原帖由 2011hwo1 于 2013-3-18 20:05 发表
upx现在版本是3.09,比你的压缩率要高,是不是你的upx版本低了点

等他 支持X64-EXE
回复

使用道具 举报

4935#
发表于 2013-3-18 23:51:14 | 只看该作者
关窗口一直是手动发送 WM_CLOSE,原来还有 KILL 命令的
回复

使用道具 举报

4936#
 楼主| 发表于 2013-3-19 08:13:46 | 只看该作者

PECMDEDIT 有64位了

PECMDEDIT 有64位了
包内 有。 X64下
回复

使用道具 举报

4937#
 楼主| 发表于 2013-3-19 11:59:33 | 只看该作者
PECMD32   EXEC 增加了 --64 开关
这样 能够运行System32中的程序。



EXEC*  --64 &&r=BCDEDIT
MESS  %&r%

在多线程中, 有瞬间的副作用,瞬间改变了其他线程API的工作模式,瞬间又切换回来了。  所以默认没有开启。
单线程没有副作用(没有其他线程)。

对PECMD64 没有任何影响和作用。(不理)

PECMDEDIT32 也自动加上了这个开关。 (PECMDEDIT64没必要了)

[ 本帖最后由 mdyblog 于 2013-3-19 12:27 编辑 ]
回复

使用道具 举报

4938#
 楼主| 发表于 2013-3-19 12:25:46 | 只看该作者
原帖由 clonecd 于 2013-3-19 12:20 发表
这样用也可以的吧?     EXEC*-  --64 &&r=BCDEDIT


可以的。 原有的行为不变。 只是 再 加 一个开关。
回复

使用道具 举报

4939#
 楼主| 发表于 2013-3-19 22:43:29 | 只看该作者
原帖由 clonecd 于 2013-3-19 21:51 发表
mdyblog 老师,问一个SHOW的命令。
用来卸载Z:,不管这个Z:盘是什么磁盘号分区号,以下用法对不对?

SHOW - ,Z:

顺便再问一下,这个是调用 DeleteVolumeMountPoint 这个函数的吗?

1. 不分什么磁盘号分区号, 还是光驱,软驱。。。。

2。
SHOW *- ,Z:    //调用 DeleteVolumeMountPoint

没有*则不调用。
回复

使用道具 举报

4940#
发表于 2013-3-19 23:34:34 | 只看该作者
如何检测当前运行的Windows环境的版本?
回复

使用道具 举报

4941#
 楼主| 发表于 2013-3-19 23:45:48 | 只看该作者
原帖由 2010qaqz111 于 2013-3-19 23:34 发表
如何检测当前运行的Windows环境的版本?


EXEC*  &&ver=!cmd /c ver
MESS  【%&ver%】
// 【Microsoft Windows [版本 6.1.7601]】
回复

使用道具 举报

4942#
 楼主| 发表于 2013-3-19 23:49:46 | 只看该作者
原帖由 clonecd 于 2013-3-19 12:20 发表
这样用也可以的吧?     EXEC*-  --64 &&r=BCDEDIT

新版 PECMD32 EXEC 默认 【解除对X64文件系统的限制】,内部已解决 多线程问题。
--no64 则 取消 这种 解除。

另外, 也解除了 对 注册表的限制。
PECMD64 没有影响也没有副作用。 不理会。

EXEC*-  &&r=!BCDEDIT
MESS. %&r%

[ 本帖最后由 mdyblog 于 2013-3-19 23:52 编辑 ]
回复

使用道具 举报

4943#
 楼主| 发表于 2013-3-20 14:51:05 | 只看该作者

支持 this函数 和this代码段

原帖由 clonecd 于 2013-3-20 00:03 发表
这个好啊。

PECMD2012.1.75.1-130314-13.多窗口线程孵化版_win32_64.sfx


支持 this函数 和this代码段

1. this函数,就是在函数名后 加空格和一*,【 *】。 对此函数的调用均为this调用。方便定义  PE变量。格式如下:

_SUB 函数名 *

HELP  _SUB


_SUB  ABC *
    ENVI &&V=1**67
_END
ABC
MESS  【%&&V%】
//结果是 【1**67】

2. this代码段, 就是在{后紧接星号*。  在原有执行栈上运行。方便定义 PE变量, 控件等。作为纯范围指示。 格式如下:
{*
....
}

HELP 代码段

ENVI I=2
IFEX $1=1,
{*
   ENVI &&V[%I%]=1**67YES
}!
{*
   ENVI &&V[%I%]=1**67NO
}


MESS 【%&&V[2]%】
//结果是 【1**67YES】

ENVI I=1
LOOP #%I% <= 100,
{*
   ENVI &&V[%I%]=1**67-%I%
   CALC I=%I% + 1
}
MESS 【%&&V[1]%】
//结果是 【1**67-1】


回复

使用道具 举报

4944#
发表于 2013-3-20 19:28:07 | 只看该作者
原帖由 mdyblog 于 2013-3-19 23:45 发表


EXEC*  &&ver=!cmd /c ver
MESS  【%&ver%】
// 【Microsoft Windows [版本 6.1.7601]】

我没说清楚,问题应该是如何得知当前运行的环境是否PE?是哪个核心版本的windows环境?

这种写法我知道,但是这只能得到windows核心版本,无法分辨是否PE。

PE 和 正常 win 系统的区别是核心从内存盘加载,这自然导致注册表内的改动不能保存,也因此保护了 PE 不会因本次运行中造成的改动而被破坏,这应该是 PE 和正常 win 最根本的差别吧。
我想知道除了这一点外,PE 和正常的 win 还有什么区别?哪些又是可以用来判断当前环境是 win 还是 PE?
回复

使用道具 举报

4945#
 楼主| 发表于 2013-3-20 21:23:23 | 只看该作者
原帖由 2010qaqz111 于 2013-3-20 19:28 发表

我没说清楚,问题应该是如何得知当前运行的环境是否PE?是哪个核心版本的windows环境?

这种写法我知道,但是这只能得到windows核心版本,无法分辨是否PE。

PE 和 正常 win 系统的区别是核心从内存盘加 ...


环境变量 SystemDrive 可以判别 PE 。
为 X: 则 为PE。
FIND $X:=%SystemDrive%,  MESS IN PE!  MESS NOT IN PE
回复

使用道具 举报

4946#
 楼主| 发表于 2013-3-20 21:28:33 | 只看该作者
PECMD2012.1.75.1-130314-14.多窗口线程孵化版_win32_64.sfx

支持画布。
※可用"ENVI @窗口.Paint=函数名",设置画布回调函数,函数参数为HDC 宽 高.
※可用"ENVI @窗口.InvalidateRect=[左]:[上]:[右]:[下]:[是否擦除背景]",刷新。

参见 画布演示.wcs (包内有)
动画 哦。





[ 本帖最后由 mdyblog 于 2013-3-21 10:53 编辑 ]

Snap1.gif (3.81 KB, 下载次数: 141)

Snap1.gif

画布演示.zip

699 Bytes, 下载次数: 6, 下载积分: 无忧币 -2

回复

使用道具 举报

4947#
发表于 2013-3-20 22:48:38 | 只看该作者
原帖由 <i>mdyblog</i> 于 2013-3-20 21:23 发表
环境变量 SystemDrive 可以判别 PE 。
为 X: 则 为PE。
FIND $X:=%SystemDrive%,  MESS IN PE!  MESS NOT IN PE


正常系统也有可能是安装在 X 盘的吧?虽然基本没人会这么干。

PE 从内存盘加载系统是否比正常的系统多出了什么驱动?

[ 本帖最后由 2010qaqz111 于 2013-3-20 22:50 编辑 ]
回复

使用道具 举报

4948#
 楼主| 发表于 2013-3-20 23:16:45 | 只看该作者

回复 #5274 2010qaqz111 的帖子

这样差不多了。    没人 把系统装在X:。 最多D:  E: 。
回复

使用道具 举报

4949#
发表于 2013-3-21 08:15:15 | 只看该作者

回复 #5274 2010qaqz111 的帖子

REGI $HKLM\SYSTEM\CurrentControlSet\Control\SystemStartOptions,&&SSO
SED &&MNT=?:0,MININT,,%&SSO%
FIND $%&MNT%=0,MESS NOT IN PE!MESS IN PE
回复

使用道具 举报

4950#
 楼主| 发表于 2013-3-21 09:42:18 | 只看该作者
原帖由 spadek 于 2013-3-21 08:15 发表
REGI $HKLM\SYSTEM\CurrentControlSet\Control\SystemStartOptions,&&SSO
SED &&MNT=?:0,MININT,,%&SSO%
FIND $%&MNT%=0,MESS NOT IN PE!MESS IN PE

这个好!  PE 有 MININT 启动标志

[ 本帖最后由 mdyblog 于 2013-3-21 09:43 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-7-27 19:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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