无忧启动论坛

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

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

    [复制链接]
4711#
发表于 2013-3-9 09:13:56 | 只看该作者
回复

使用道具 举报

4712#
 楼主| 发表于 2013-3-9 09:23:39 | 只看该作者
原帖由 2011hwo1 于 2013-3-9 09:13 发表
pecmd 写文件时会导致窗口闪


PUTF 还是 WRIT ?

//试试,没问题啊
LOOP #1=1, TEAM  WRIT AA.TXT,$+0,123| PUTF AA.TXT,0,0x41 0x42 | WAIT 5000

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

使用道具 举报

4713#
发表于 2013-3-9 09:35:35 | 只看该作者
原帖由 mdyblog 于 2013-3-9 00:34 发表


#5003 楼
定时提醒5.wcs.zip (5.06 KB)
加一句 ENVI &&&FORCELOCAL=1
去掉了众多的& . 是清爽多了。

现在定时器有1个问题是到期时间编辑框最好是不要,在新建任务时年月日时间使用当前年月日时间
回复

使用道具 举报

4714#
发表于 2013-3-9 09:49:37 | 只看该作者
我上传了 备份方竹数据库 脚本,这个脚本作用就是,如果D:\fzservic\feidat\feica.fsw或者 D:\fzservic\feidat\feica.livv被修改就备份,并且最多备份100个文件
我每次运行这个文件当前窗口都会闪一下,而失去了焦点

备份方竹数据库.7z

512 Bytes, 下载次数: 5, 下载积分: 无忧币 -2

回复

使用道具 举报

4715#
 楼主| 发表于 2013-3-9 09:49:50 | 只看该作者

PECMD2012.1.74.1-130308-3PECMD2012

PECMD2012.1.74.1-130308-3PECMD2012

为方便 在ForceLocal 下操作 环境变量, ENVI增加 后缀-env

//后缀-env //临时取消forcelocal以便于操作环境变量,必须是第一个后缀  
如:
ENVI &&&FORCELOCAL=1

SET-env    &SystemRoot=%SystemRoot%      // 环境变量 SystemRoot 复制到 PE变量 SystemRoot
ENVI-envi  MySystemRoot=%&MySystemRoot%   // PE变量 MySystemRoot 复制到 环境变量 MySystemRoot

现在不用临时取消命令:
SET &SystemRoot=
{
  ENVI &&&FORCELOCAL=0
  SET  SystemRoot=%SystemRoot%
}

{
  ENVI &&&FORCELOCAL=0
  ENVI MySystemRoot=%&SystemRoot%
}
回复

使用道具 举报

4716#
 楼主| 发表于 2013-3-9 09:55:24 | 只看该作者
原帖由 2011hwo1 于 2013-3-9 09:35 发表

现在定时器有1个问题是到期时间编辑框最好是不要,在新建任务时年月日时间使用当前年月日时间

你是说 图中红色输入框不要嘛?
回复

使用道具 举报

4717#
发表于 2013-3-9 10:04:31 | 只看该作者
是的,时间日期框里面的时间在添加任务时先取当前时间,然后设置为时间日期框里面的时间,在编辑任务时日期时间款里面的时间是任务列表里面的时间
回复

使用道具 举报

4718#
发表于 2013-3-9 10:21:12 | 只看该作者
原帖由 mdyblog 于 2013-3-9 09:23 发表


PUTF 还是 WRIT ?

//试试,没问题啊
LOOP #1=1, TEAM  WRIT AA.TXT,$+0,123| PUTF AA.TXT,0,0x41 0x42 | WAIT 5000

我将你的命令写到a.wcs里面
我在cmd里面执行pecmd load a.wcs会让cmd失去焦点
回复

使用道具 举报

4719#
 楼主| 发表于 2013-3-9 10:31:34 | 只看该作者
原帖由 2011hwo1 于 2013-3-9 10:04 发表
是的,时间日期框里面的时间在添加任务时先取当前时间,然后设置为时间日期框里面的时间,在编辑任务时日期时间款里面的时间是任务列表里面的时间



#5003 楼
已更新。

定时提醒8.wcs.zip : 命令中 支持环境变量

[ 本帖最后由 mdyblog 于 2013-3-9 11:37 编辑 ]
回复

使用道具 举报

4720#
发表于 2013-3-9 10:50:00 | 只看该作者
定时提醒pecmd命令里面可以执行 load 脚本名吗?怎么不执行啊
回复

使用道具 举报

4721#
 楼主| 发表于 2013-3-9 10:50:24 | 只看该作者
原帖由 2011hwo1 于 2013-3-9 10:21 发表

我将你的命令写到a.wcs里面
我在cmd里面执行pecmd load a.wcs会让cmd失去焦点


我试了试,正常。(WIN764)
刚开始 cmd失去焦点 。 这个正常。windows cmd就这样。运行calc也这样。
点击获得焦点后,虽然没5秒写一次。 cmd 不是去焦点了, 输入正常。
打开记事本,长时间用也正常。如图。

、、、、
XP32下也正常。

[ 本帖最后由 mdyblog 于 2013-3-9 11:02 编辑 ]

Snap1xxx.gif (14.79 KB, 下载次数: 112)

Snap1xxx.gif

Snap2xxx.gif (9.78 KB, 下载次数: 105)

Snap2xxx.gif
回复

使用道具 举报

4722#
 楼主| 发表于 2013-3-9 11:15:45 | 只看该作者
原帖由 2011hwo1 于 2013-3-9 10:50 发表
定时提醒pecmd命令里面可以执行 load 脚本名吗?怎么不执行啊


如果脚本 不会阻塞, 可以 直接【LOAD D:\atimer.wcs】

Snap1.gif (2.07 KB, 下载次数: 115)

Snap1.gif
回复

使用道具 举报

4723#
发表于 2013-3-9 12:06:08 | 只看该作者
好奇怪哦,定时提醒用load 文件名 无法获得函数变量 用exec pecmd load 能正常获得函数变量
定时提醒8.wcs.zip没有这个问题

[ 本帖最后由 2011hwo1 于 2013-3-9 12:22 编辑 ]
回复

使用道具 举报

4724#
 楼主| 发表于 2013-3-9 12:24:04 | 只看该作者
原帖由 2011hwo1 于 2013-3-9 12:06 发表
好奇怪哦,定时提醒用load 文件名 无法获得函数变量 用exec pecmd load 能正常获得函数变量
定时提醒8.wcs.zip没有这个问题


这是因为 FORCELOCAL 禁止环境变量。
下载最新的 定时提醒9.wcs.zip。
在执行 定时命令时,临时 关闭 FORCELOCAL。
定时提醒10(9)(8).wcs.zip : 命令中 支持环境变量

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

使用道具 举报

4725#
发表于 2013-3-9 12:33:31 | 只看该作者
到期时间好像不是起始时间当前时间可能才是起始时间吧?
理论来说起始时间是0点 间隔6分钟的话应该是正点+6分钟*n 是任务执行时间,而实际上却不是.修改任务或者启动定时提醒时,任务的首次执行时间应该是:当前时间+间隔时间-(当前时间-起始时间)%间隔时间
回复

使用道具 举报

4726#
发表于 2013-3-9 12:37:52 | 只看该作者
首次任务执行后才应该是间隔指定时间执行任务的
回复

使用道具 举报

4727#
 楼主| 发表于 2013-3-9 12:55:44 | 只看该作者
原帖由 2011hwo1 于 2013-3-9 12:33 发表
到期时间好像不是起始时间当前时间可能才是起始时间吧?
理论来说起始时间是0点 间隔6分钟的话应该是正点+6分钟*n 是任务执行时间,而实际上却不是.修改任务或者启动定时提醒时,任务的首次执行时间应该是:当前时 ...


对 到期 定时器:
启动时如果没过期,将在 指定的 时间第一次启动。
否则,按后续 定时 计算, 并减去 相应个 间隔周期。
当前 时100秒。
定时 80秒, 间隔8秒, 无限次。
则 在 80+8*3=104秒处。
回复

使用道具 举报

4728#
发表于 2013-3-9 13:36:10 | 只看该作者
原帖由 mdyblog 于 2013-3-9 12:55 发表


对 到期 定时器:
启动时如果没过期,将在 指定的 时间第一次启动。
否则,按后续 定时 计算, 并减去 相应个 间隔周期。
当前 时100秒。
定时 80秒, 间隔8秒, 无限次。
则 在 80+8*3=104秒处。

计算公式应该是: 当前时间+间隔时间-(当前时间-起始时间)%间隔时间    计算起始时间时不能忽略起始时间!
如起始时间是:2013-03-09-0:0:0转换成 gmt时间是 1362758400秒
   当前时间是:2013-03-09-13:5:20转换成 gmt时间是 1362805520秒
   间隔时间是:360秒
计算结果是:1362805520+360-(1362805520-1362758400)%360=1362805560秒
   转换成*local0时间后得到 首次执行任务时间是: 2013-3-9-13:6:0.0
   首次定时时间是: 360-(1362805520-1362758400)%360=40
  也就是40秒后首次执行任务

[ 本帖最后由 2011hwo1 于 2013-3-9 13:47 编辑 ]
回复

使用道具 举报

4729#
发表于 2013-3-9 13:39:36 | 只看该作者
原帖由 mdyblog 于 2013-3-9 12:55 发表


对 到期 定时器:
启动时如果没过期,将在 指定的 时间第一次启动。
否则,按后续 定时 计算, 并减去 相应个 间隔周期。
当前 时100秒。
定时 80秒, 间隔8秒, 无限次。
则 在 80+8*3=104秒处。

计算为  8-(100-80)%8=4
首次执行时间是4秒后

[ 本帖最后由 2011hwo1 于 2013-3-9 13:47 编辑 ]
回复

使用道具 举报

4730#
 楼主| 发表于 2013-3-9 14:02:29 | 只看该作者
原帖由 2011hwo1 于 2013-3-9 13:36 发表

计算公式应该是: 当前时间+间隔时间-(当前时间-起始时间)%间隔时间    计算起始时间时不能忽略起始时间!
如起始时间是:2013-03-09-0:0:0转换成 gmt时间是 1362758400秒
   当前时间是:2013-03-09-13:5:20转 ...


对,就是这个公式。
回复

使用道具 举报

4731#
发表于 2013-3-9 14:06:31 | 只看该作者
原帖由 mdyblog 于 2013-3-9 14:02 发表


对,就是这个公式。

但是怎么定时提醒的起始时间是错误的,是不是还没有用这个公式啊?
回复

使用道具 举报

4732#
发表于 2013-3-9 14:22:36 | 只看该作者
DATE  *local:0 &&utc0 utc
这行是什么意思?
回复

使用道具 举报

4733#
 楼主| 发表于 2013-3-9 14:24:54 | 只看该作者
原帖由 2011hwo1 于 2013-3-9 14:06 发表

但是怎么定时提醒的起始时间是错误的,是不是还没有用这个公式啊?


时这个公式。
函数  UpDateTimer
IFEX $%left% > 0,!  //过期
下面就是。

你设为整分,如14:20:00, 间隔 60 秒, 无限次, 到期 类型。
在 30秒左右启动,    看是否在总是在整分 提示。

注意不是 间隔定时器, 这样 到期时间 不理的。
回复

使用道具 举报

4734#
 楼主| 发表于 2013-3-9 14:26:50 | 只看该作者
原帖由 2011hwo1 于 2013-3-9 14:22 发表
DATE  *local:0 &&utc0 utc
这行是什么意思?


以前gmt时间是用的。
现在基本不用。
表示一个无效时间。
回复

使用道具 举报

4735#
发表于 2013-3-9 15:01:56 | 只看该作者
原帖由 mdyblog 于 2013-3-9 14:26 发表


以前gmt时间是用的。
现在基本不用。
表示一个无效时间。

在定时提醒里面就有那一段是不是写错误了,请检查:
其位置在下面的函数里面:
_SUB InitVar
    SET &CMDMSG=1
    SET &CMDMUSIC=2
    SET &CMDRUN=3
    SET &CMDIN=4
    SET &CMDMAX=4
    SET &CMDTXT[1]=文本
    SET &CMDTXT[2]=音乐
    SET &CMDTXT[3]=运行程序
    SET &CMDTXT[4]=PECMD命令

    SET &TIMERINTER=1  //间隔
    SET &TIMERTO=2     //到期
    SET &TIMERMAX=2     
    SET &TIMERTXT[1]=间隔
    SET &TIMERTXT[2]=到期
    CALC &&S60=60000 * 10000000 //60秒 utc
    SET &MSUTC=10000  //ms utc
    SET &SUTC=10000000  //s utc

    SET &Count=0
    ENVI  
    SET &PLAYER=%ProgramFiles%\Windows Media Player\mplayer2.exe
    IFEX %PLAYER%,! FORX %ProgramFiles%\Windows Media Player\*player*.exe,&&f,1,SET  PLAYER=%f%
    DATE  *local:0 &&utc0 utc
    SET &Count=0
    READ %CONFIG%,*r,&&sCONFIG
    FORX *NL &sCONFIG,&&line, CALL * InitVarLine
    ENVI  &sCONFIG=  //Clear
_END
回复

使用道具 举报

4736#
发表于 2013-3-9 15:29:51 | 只看该作者
原帖由 mdyblog 于 2013-3-9 14:24 发表


时这个公式。
函数  UpDateTimer
IFEX $%left% > 0,!  //过期
下面就是。

你设为整分,如14:20:00, 间隔 60 秒, 无限次, 到期 类型。
在 30秒左右启动,    看是否在总是在整分 提示。

注 ...

经过测试,能够在整分附近提示.有点小误差

建议修改增加任务和编辑任务的界面修改为:
选择间隔时禁止修改到期时间,也就是到期时间忽略.

[ 本帖最后由 2011hwo1 于 2013-3-9 15:47 编辑 ]
回复

使用道具 举报

4737#
发表于 2013-3-9 15:36:36 | 只看该作者
DATE   &&utc0 utc怎么得到的是2^64的计算结果
回复

使用道具 举报

4738#
 楼主| 发表于 2013-3-9 16:31:37 | 只看该作者
原帖由 2011hwo1 于 2013-3-9 15:36 发表
DATE   &&utc0 utc怎么得到的是2^64的计算结果

是UINT64的值。
回复

使用道具 举报

4739#
发表于 2013-3-9 16:43:30 | 只看该作者
我用定时提醒来load 脚本就不产生窗口闪动,如果用其他的定时器来启动脚本就会闪动不知道是怎么回事
回复

使用道具 举报

4740#
 楼主| 发表于 2013-3-9 17:12:31 | 只看该作者
原帖由 2011hwo1 于 2013-3-9 15:29 发表

经过测试,能够在整分附近提示.有点小误差

建议修改增加任务和编辑任务的界面修改为:
选择间隔时禁止修改到期时间,也就是到期时间忽略.

一更新 #5003
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-7-6 15:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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