无忧启动论坛

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

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

    [复制链接]
19261#
发表于 2024-6-4 13:37:49 | 只看该作者

难怪,但是如果不指定编码就出问题

点评

那估计是你的文件不带UTF-8文件头BOM  详情 回复 发表于 2024-6-4 14:31
回复

使用道具 举报

19262#
发表于 2024-6-4 14:31:37 | 只看该作者
liangnijian 发表于 2024-6-4 13:37
难怪,但是如果不指定编码就出问题

那估计是你的文件不带UTF-8文件头BOM

点评

解决了,把文本编码改成ANSI就没这些事了  详情 回复 发表于 2024-6-4 15:10
回复

使用道具 举报

19263#
发表于 2024-6-4 15:10:45 | 只看该作者
红毛樱木 发表于 2024-6-4 14:31
那估计是你的文件不带UTF-8文件头BOM

解决了,把文本编码改成ANSI就没这些事了
回复

使用道具 举报

19264#
发表于 2024-6-4 16:38:31 | 只看该作者
mdyblog 发表于 2024-6-3 19:27
正则,替换,原串
对应 这3各部分是否白痴书写的样子,%V%就保持这个样子, 不解释变量; 就给个*  _为占位 ...

用 LPOS/RPOS/SED 指令查找指定字符串出现的行号时,遇到了几个问题:
1、如何仅返回指定字符串出现在行首或者行尾的行号?
2、当指定字符串在同一行中出现不止一次时,该行的行号仅返回一次。

比如:
1、(下面的代码未达到要求)要求:仅返回字符串“顺序”开头的行号
ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA
\%&NL%窗口使用顺序缩放比例缩放后顺序
\%&NL%在高DPI显示顺序环境窗口高度超出顺序预期。
LPOS*  ,*&LPOS_AllLineNum=顺序,1,%&MSG%
SED* ;;*&SED_AllLineNum=?0,顺序,,%&MSG%
MESS [%&LPOS_AllLineNum%][%&SED_AllLineNum%]
2、(下面的代码未达到要求)要求:字符串“顺序”在同一行中出现多次,该行号仅返回一次。
ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA
\%&NL%窗口使用顺序缩放比例缩放后顺序
\%&NL%在高DPI显示顺序环境窗口高度超出顺序预期。
LPOS*  ,*&LPOS_AllLineNum=顺序,1,%&MSG%
SED* ;;*&SED_AllLineNum=?0,顺序,,%&MSG%
MESS [%&LPOS_AllLineNum%][%&SED_AllLineNum%]



点评

//2、要求:字符串“顺序”在同一行中出现多次,该行号仅返回一次。 ENVI$ &NL=0d 0a ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA \%&NL%窗口使用顺序缩放比例缩放后 //顺序 \%&NL%在高DPI显示顺序环  详情 回复 发表于 2024-6-4 17:57
ENVI$ &NL=0d 0a ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA \%&NL%窗口使用顺序缩放比例缩放后顺序 \%&NL%顺序在高DPI显示顺序环境窗口高度超出顺序预期。 //LPOS* ,*&LPOS_AllLineNum=顺序,1,%&MSG%  详情 回复 发表于 2024-6-4 17:54
1、 弄个换行符到前面呗  详情 回复 发表于 2024-6-4 16:54
回复

使用道具 举报

19265#
发表于 2024-6-4 16:49:59 | 只看该作者
本帖最后由 Anson4 于 2024-6-4 16:54 编辑

在用PECMD处理VHD/VHDX映像文件时,已经实现了这些功能:创建、挂载、卸载、差分。
下面这四个功能如何实现呢:调整扩展或者缩减容量、优化压缩文件体积、将子文件的修改合并到父文件中、重新指定差分文件的父亲
尤其是”重新指定差分文件的父亲“这个功能,目前似乎 bootice 才有,连 Diskpart 都实现不了。
相关的API应该是这个:https://learn.microsoft.com/zh-c ... ddvirtualdiskparent

点评

不是太复杂的API,直接CALL $API 也不是很难  详情 回复 发表于 2024-6-4 16:55
回复

使用道具 举报

19266#
发表于 2024-6-4 16:54:29 | 只看该作者
Anson4 发表于 2024-6-4 16:38
用 LPOS/RPOS/SED 指令查找指定字符串出现的行号时,遇到了几个问题:
1、如何仅返回指定字符串出现在行 ...

1、
  1. ENVI$ &NL=0d 0a
  2. ENVI &MSG=%&NL%顺序AA获取指定DEF字符串出现的顺序行号AA
  3. \%&NL%窗口使用顺序缩放比例缩放后顺序
  4. \%&NL%在高DPI显示顺序环境窗口高度超出顺序预期。
  5. LPOS*  ,*&LPOS_AllLineNum=%&NL%顺序,1,%&MSG%
  6. SED* ;;*&SED_AllLineNum=?0,%&NL%顺序,,%&MSG%
  7. MESS [%&LPOS_AllLineNum%][%&SED_AllLineNum%]
复制代码
弄个换行符到前面呗
回复

使用道具 举报

19267#
发表于 2024-6-4 16:55:59 | 只看该作者
Anson4 发表于 2024-6-4 16:49
在用PECMD处理VHD/VHDX映像文件时,已经实现了这些功能:创建、挂载、卸载、差分。
下面这四个功能如何实 ...

不是太复杂的API,直接CALL $API 也不是很难

点评

调用API我是真不懂,请帮个忙写一段!  详情 回复 发表于 2024-6-4 17:11
回复

使用道具 举报

19268#
发表于 2024-6-4 17:11:14 | 只看该作者
红毛樱木 发表于 2024-6-4 16:55
不是太复杂的API,直接CALL $API 也不是很难

调用API我是真不懂,请帮个忙写一段!
回复

使用道具 举报

19269#
 楼主| 发表于 2024-6-4 17:54:57 | 只看该作者
Anson4 发表于 2024-6-4 16:38
用 LPOS/RPOS/SED 指令查找指定字符串出现的行号时,遇到了几个问题:
1、如何仅返回指定字符串出现在行 ...

ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA
\%&NL%窗口使用顺序缩放比例缩放后顺序
\%&NL%顺序在高DPI显示顺序环境窗口高度超出顺序预期。
//LPOS*  ,*&LPOS_AllLineNum=顺序,1,%&MSG%
SED* ;;*&SED_AllLineNum=?0,%&NL%顺序,,%&NL%%&MSG%
MESS. %&SED_AllLineNum%
EXIT
////////////////
1  3

回复

使用道具 举报

19270#
 楼主| 发表于 2024-6-4 17:57:48 | 只看该作者
Anson4 发表于 2024-6-4 16:38
用 LPOS/RPOS/SED 指令查找指定字符串出现的行号时,遇到了几个问题:
1、如何仅返回指定字符串出现在行 ...

//2、要求:字符串“顺序”在同一行中出现多次,该行号仅返回一次。
ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA
\%&NL%窗口使用顺序缩放比例缩放后   //顺序
\%&NL%在高DPI显示顺序环境窗口高度超出顺序预期。
SED* ;;*&SED_AllLineNum=?0,顺序[^%&NL%]*顺序,,%&MSG%
MESS [%&SED_AllLineNum%]
EXIT
------------------------
[1 3]

点评

pecmd支持内置一个字体到主程序吗,比如图标字体,某些系统没有图标字体,调用起来就很麻烦要自己转成图片  详情 回复 发表于 2024-6-4 21:17
运行结果符合要求,谢谢!只是前面我的描述似乎有误,正确要求应该是这样:字符串“顺序”在同一行中出现一次或者多次,该行号仅返回一次。  详情 回复 发表于 2024-6-4 18:19
回复

使用道具 举报

19271#
发表于 2024-6-4 18:19:05 | 只看该作者
mdyblog 发表于 2024-6-4 17:57
//2、要求:字符串“顺序”在同一行中出现多次,该行号仅返回一次。
ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA ...

运行结果符合要求,谢谢!只是前面我的描述似乎有误,正确要求应该是这样:字符串“顺序”在同一行中出现一次或者多次,该行号仅返回一次。

点评

//2X、要求:字符串“顺序”在同一行中出现1次或多次,该行号仅返回一次。 ENVI$ &NL=0d 0a ENVI$ &NLa=0a ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA \%&NL%窗口使用缩放比例缩放后 //顺序 \%&NL%  详情 回复 发表于 2024-6-4 22:21
回复

使用道具 举报

19272#
发表于 2024-6-4 18:24:29 | 只看该作者
mdyblog 发表于 2024-6-3 10:30
最后一哆嗦, 优化 出了 差错。 重新上传了。

用起次,也好理解了,妥了
回复

使用道具 举报

19273#
发表于 2024-6-4 21:17:27 | 只看该作者
mdyblog 发表于 2024-6-4 17:57
//2、要求:字符串“顺序”在同一行中出现多次,该行号仅返回一次。
ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA ...

pecmd支持内置一个字体到主程序吗,比如图标字体,某些系统没有图标字体,调用起来就很麻烦要自己转成图片

点评

新版 FONT支持 私有字体 FONT -p[:返回名] //加载 私有字体 FONT - -p 上次返回值 //主动删除 私有字体 , 一般不需要, 程序结束就自带删除了 资源 和 字体文件 可以 CMPS -m 压缩 1: FONT -  详情 回复 发表于 2024-6-6 04:29
试试  详情 回复 发表于 2024-6-4 23:03
该重写你的连接器了,现在PECMD支持圆角渐透明  详情 回复 发表于 2024-6-4 21:41
字体文件应该需要单独释放出来的,内置后PUTF释放出来,然后FONT加载,不用了再FONT - 卸载  详情 回复 发表于 2024-6-4 21:33
回复

使用道具 举报

19274#
发表于 2024-6-4 21:33:49 | 只看该作者
826773297 发表于 2024-6-4 21:17
pecmd支持内置一个字体到主程序吗,比如图标字体,某些系统没有图标字体,调用起来就很麻烦要自己转成图 ...

字体文件应该需要单独释放出来的,内置后PUTF释放出来,然后FONT加载,不用了再FONT - 卸载
回复

使用道具 举报

19275#
发表于 2024-6-4 21:41:39 | 只看该作者
826773297 发表于 2024-6-4 21:17
pecmd支持内置一个字体到主程序吗,比如图标字体,某些系统没有图标字体,调用起来就很麻烦要自己转成图 ...

该重写你的连接器了,现在PECMD支持圆角渐透明
回复

使用道具 举报

19276#
 楼主| 发表于 2024-6-4 22:21:44 | 只看该作者
Anson4 发表于 2024-6-4 18:19
运行结果符合要求,谢谢!只是前面我的描述似乎有误,正确要求应该是这样:字符串“顺序”在同一行中出现 ...

//2X、要求:字符串“顺序”在同一行中出现1次或多次,该行号仅返回一次。
ENVI$ &NL=0d 0a
ENVI$ &NLa=0a
ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA
\%&NL%窗口使用缩放比例缩放后   //顺序
\%&NL%在高DPI显示顺序环境窗口高度超出顺序预期。
SED* ;;*&SED_AllLineNum=?0,%&NL%[^%&NLa%]*顺序[^%&NLa%]*[%&NL%],,%&NL%%&MSG%%&NL%
MESS [%&SED_AllLineNum%]

------------------------
[1 3]

点评

谢谢!  发表于 2024-6-5 15:39
回复

使用道具 举报

19277#
 楼主| 发表于 2024-6-4 23:03:41 | 只看该作者
826773297 发表于 2024-6-4 21:17
pecmd支持内置一个字体到主程序吗,比如图标字体,某些系统没有图标字体,调用起来就很麻烦要自己转成图 ...

试试
回复

使用道具 举报

19278#
发表于 2024-6-5 06:50:24 | 只看该作者
本帖最后由 hhh333 于 2024-6-5 07:04 编辑

看下面:
  1. ENVI^ EnviMode=1
  2. SET$ &NL=0d 0a
  3. SET &v1=1A11%&NL%2A22%&NL%3A33%&NL%4A44%&NL%55A5
  4. SED &v2=2:2,%&NL%,-,%&v1%
  5. SED &v3=2:-2,%&NL%,-,%&v1%

  6. MESS.   v1[%&NL%%&v1%]%&NL% v2[%&NL%%&v2%]%&NL% v3[%&NL%%&v3%]
复制代码
得到结果如下:
  1. v1[
  2. 1A11
  3. 2A22
  4. 3A33
  5. 4A44
  6. 55A5]
  7. v2[
  8. 1A11
  9. 2A22
  10. 3A33-4A44-55A5]
  11. v3[
  12. 1A11
  13. 2A223A334A44
  14. 55A5]
复制代码
1、有错误,倒序没用”-"号替换
2、还是不太对,主要是不一致
SED &v2=2:2  这个:2代表正序跳过次数,即从顺数第3个开始替换
SED &v2=2:-2  这个:-2代表反序起次,即从倒数第2个开始替换
因此,要保持兼容,:号后的数表示起次是不对的

点评

以前的逻辑不能改, 否则 出乱子。 倒序 如果 :-n,如果还是理解为 (从右 )跳过n次。 从最右边开始替换, 那么 会出现容易出错的 -0 程序处理-0没问题。 就怕 写代码 容易把 -0 写成 0.,变成从最左开始。  详情 回复 发表于 2024-6-5 08:51
回复

使用道具 举报

19279#
 楼主| 发表于 2024-6-5 08:51:00 | 只看该作者
本帖最后由 mdyblog 于 2024-6-5 11:34 编辑
hhh333 发表于 2024-6-5 06:50
看下面:
得到结果如下:
1、有错误,倒序没用”-"号替换

以前的逻辑不能改, 否则 出乱子。
倒序 如果 :-n,如果还是理解为 (从右 )跳过n次。
从最右边开始替换,
那么 会出现容易出错的  -0

程序处理-0没问题。 就怕 写代码  容易把 -0 写成 0.,变成从最左开始。


现在:
从左:0 1 2 3 4 5  //跳过次数n
从右:  -1 -2   -3    -4   -5    -6  //[-]起次n

现在从 整数  的角度理解:0 ~ n 从做开始的 。 0 表示从最左最开始替换
-1 ~- n 从做开始的 。 -1表示从最右最开始替换


如果严格按字面  1基  [-]起次  理解
从左:1 2 3 4 5  6  //起次 1~n  ====不兼容以前代码, 不考虑
从右: -1    -2   -3   -4  -5  -6  //-起次 -0 ~-n

如果严格按字面  0基  [-]起次  理解
从左:  0  1 2 3 4 5  //起次 0~n
从右: -0  -1    -2   -3   -4   -5   //-起次 -0~ -n    出现-0 ,容易犯错。

如果严格按字面  [-]跳过次数  理解
从左:0 1 2 3 4 5  //跳过次数0~n
从右: -0  -1   -2    -3    -4   -5   //-跳过次数 -0~-n    出现-0 ,容易犯错。




~~~~~~~~~~~~~
要不, 使用 -0 表示从 最右一次 开始替换。 0基起次。   这样逻辑纯粹一些。



点评

哎呀,根本不要改了,我用230422版本,结果很正确: v1[ 1A11 2A22 3A33 4A44 55A5] v2[ 1A11 2A22 3A33-4A44-55A5] v3[ 1A11-2A22-3A33 4A44 55A5]  详情 回复 发表于 2024-6-5 15:47
为了与前面兼容,以前是X:Y,X代表替换次数,默认为1,Y代表跳过次数,默认为0 在前面加负号,或加一个开头,代表反向,如-X:Y,或加SED -R,代替次数与跳过次数意义不变。容易理解也容易上手 譬如 1、SED A=X:Y,  详情 回复 发表于 2024-6-5 15:31
回复

使用道具 举报

19280#
发表于 2024-6-5 15:31:22 | 只看该作者
本帖最后由 hhh333 于 2024-6-5 17:14 编辑
mdyblog 发表于 2024-6-5 08:51
以前的逻辑不能改, 否则 出乱子。
倒序 如果 :-n,如果还是理解为 (从右 )跳过n次。
从最右边开始替 ...

为了与前面兼容,以前是X:Y,X代表替换次数,默认为1,Y代表跳过次数,默认为0
在前面加负号,或加一个开关,代表反向,如-X:Y,或加SED -R,代替次数与跳过次数意义不变。容易理解也容易上手
譬如
1、SED A=X:Y,代表左起Y+1位替代X次
2、SED A=N,代表左起替代N次
3、SED A=,即为空代表左起首个位替代,相当于SED A=1:0,
4、SED A=0,代替所有
反向
1、SED A=-X:Y,代表右起Y+1位替代X次
2、SED A=-N,代表右起替代N次
3、SED A=-,即只有负号代表右起首个位替代,相当于SED A=-1:0,


你看这完全不影响以前的代码,也不用处理-0这种不好理解的情况


点评

很清楚。 就是和 MSTR /LSTR /RPOS 等换了风格。 在次数(长度)上 表示方向  详情 回复 发表于 2024-6-5 21:52
回复

使用道具 举报

19281#
发表于 2024-6-5 15:47:40 | 只看该作者
mdyblog 发表于 2024-6-5 08:51
以前的逻辑不能改, 否则 出乱子。
倒序 如果 :-n,如果还是理解为 (从右 )跳过n次。
从最右边开始替 ...

哎呀,根本不要改了,我用230422版本,结果很正确:
v1[
1A11
2A22
3A33
4A44
55A5]
v2[
1A11
2A22
3A33-4A44-55A5]
v3[
1A11-2A22-3A33
4A44
55A5]

回复

使用道具 举报

19282#
发表于 2024-6-5 15:53:06 | 只看该作者
本帖最后由 hhh333 于 2024-6-5 16:26 编辑

哈哈,还是不对
原来的2:-2,2:-1结果一样。

经老版本验证,以下结果完全正确
1、SED A=X:Y,代表左起Y+1位替代X次
2、SED A=N,代表左起替代N次
3、SED A=,即为空代表左起首个位替代,相当于SED A=1:0,
4、SED A=0,代替所有

另外,又测试了以下非规则用法
5、SED A=-n,与4结果一样。
6、SED A=X:-Y,相当于第二个为无效数,与以上2相同。
如果不加开关只加负号,即采用-X:Y的形式,在这两个地方会不兼容,但规则以外就没必要兼容了吧?

点评

新版上传了 - 加前面,加后面,都可以。不就是参数提取嘛。 m:n abs(n) 是0 基 起次, 也是 跳过次数。有 0 和 -0,方向不同。 abs(m)是替换次数。-0 和 +0 都表示全部替换。 ENVI^ EnviMode=1 SET$  详情 回复 发表于 2024-6-5 23:36
算了, 不纠结了。 - 加前,加前面都可以。 不就是参数提取嘛。  详情 回复 发表于 2024-6-5 21:56
回复

使用道具 举报

19283#
发表于 2024-6-5 16:24:33 | 只看该作者
  1. ENVI$# &&a=0x01
  2. CODE *jm  &a,>,1,1
  3. GETF &a,0#*,&b
  4. MESS %&b%
复制代码
右移1位不应该是0吗,为什么是0x80

点评

搞错了,原来是循环右移  详情 回复 发表于 2024-6-5 16:32
回复

使用道具 举报

19284#
发表于 2024-6-5 16:32:47 | 只看该作者
泮安宁 发表于 2024-6-5 16:24
右移1位不应该是0吗,为什么是0x80

搞错了,原来是循环右移
回复

使用道具 举报

19285#
 楼主| 发表于 2024-6-5 21:52:25 | 只看该作者
hhh333 发表于 2024-6-5 15:31
为了与前面兼容,以前是X:Y,X代表替换次数,默认为1,Y代表跳过次数,默认为0
在前面加负号,或加一个 ...

很清楚。
就是和 MSTR /LSTR /RPOS 等换了风格。 在次数(长度)上 表示方向
回复

使用道具 举报

19286#
 楼主| 发表于 2024-6-5 21:56:36 | 只看该作者
本帖最后由 mdyblog 于 2024-6-5 22:02 编辑
hhh333 发表于 2024-6-5 15:53
哈哈,还是不对
原来的2:-2,2:-1结果一样。

算了, 不纠结了。 - 加前面,加后面,都可以。不就是参数提取嘛。
m:n

abs(n) 是0 基 起次, 也是 跳过次数。有 0 和 -0
abs(m)是替换次数。-0 和 +0 都表示全部替换。  
回复

使用道具 举报

19287#
 楼主| 发表于 2024-6-5 23:36:54 | 只看该作者
hhh333 发表于 2024-6-5 15:53
哈哈,还是不对
原来的2:-2,2:-1结果一样。

新版上传了
- 加前面,加后面,都可以。不就是参数提取嘛。
m:n

abs(n) 是0 基 起次, 也是 跳过次数。有 0 和 -0,方向不同。
abs(m)是替换次数。-0 和 +0 都表示全部替换。  


ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=1A11%&NL%2A22%&NL%3A33%&NL%4A44%&NL%55A5
SED &v2=-2:2,%&NL%,-,%&v1%
SED &v3=2:-2,%&NL%,-,%&v1%
MESS.   v1[%&NL%%&v1%]%&NL% v2[%&NL%%&v2%]%&NL% v3[%&NL%%&v3%]
----------------------------
  v1[
1A11
2A22
3A33
4A44
55A5]
v2[
1A112A223A33
4A44
55A5]
v3[
1A112A223A33
4A44
55A5]

点评

还有个BUG,SED &v3=2:-2,%&NL%,-,%&v1%怎么变成了SED &v3=2:-2,%&NL%,,%&v1%  详情 回复 发表于 2024-6-6 09:28
回复

使用道具 举报

19288#
 楼主| 发表于 2024-6-6 04:29:24 | 只看该作者
826773297 发表于 2024-6-4 21:17
pecmd支持内置一个字体到主程序吗,比如图标字体,某些系统没有图标字体,调用起来就很麻烦要自己转成图 ...

新版 FONT支持 私有字体
FONT  -p[:返回名]  <资源|文件>  //加载 私有字体
FONT -  -p  上次返回值  //主动删除 私有字体 , 一般不需要, 程序结束就自带删除了
资源 和 字体文件   可以 CMPS -m 压缩


1:
FONT   -p:&&f  #1|FONT   //资源
MESS. font:%&f%


FONT   -p   #1|FONT   //资源



2:
FONT   -p:&&f  segmdl2.ttf.cmz   //CPMS -m 压缩的字体文件
MESS. font:%&f%

FONT   -p   segmdl2.ttf.cmz   //CPMS -m 压缩的字体文件





3:
FONT  -p    -      %&f%  //主动提前删除


效果:


回复

使用道具 举报

19289#
发表于 2024-6-6 06:15:35 | 只看该作者
mdyblog 发表于 2024-6-6 04:29
新版 FONT支持 私有字体
FONT  -p[:返回名]    //加载 私有字体
FONT -  -p  上次返回值  //主动删除  ...
  1. TEAM set^ EnviMode=1|set^ ForceLocal=1|set &Wide=666|set &High=212|set$ nl=0d 0a
  2. set &::EN_CHANGE=0x0300
  3. set &::WM_KEYDOWN=0x0100
  4. set &::WM_LBUTTONDOWN=0x0201
  5. set &::WM_RBUTTONDOWN=0x0204
  6. set &::WM_LBUTTONDBLCLK=0x0203
  7. set &::WM_MOUSEENTER=0x1000
  8. set &::WM_MOUSELEAVE=0x02A3
  9. set &::WM_DROPFILES=0x0233
  10. set &::WM_SIZE=0x0005
  11. set &::SIZE_MAXSHOW=3
  12. set &::SIZE_MAXIMIZED=2
  13. set &::SIZE_RESTORED=0
  14. set &::CBN_HOVER=0x7001
  15. set &::SB_VERT=1
  16. set &::SIF_POS=0x0004
  17. set &::WM_VSCROLL=0x0115
  18. set &::SB_BOTTOM=7
  19. set &::EM_GETSEL=0x00B0
  20. set &::EM_SETSEL=0x00B1

  21. set &::EM_LINEINDEX=0x00BB
  22. //DPI缩放比
  23. CALL $--ret:&DPI_Aware user32.dll,SetProcessDPIAware
  24. CALL $--ret:&DPI_Aware user32.dll,SetProcessDPIAwareness,#1
  25. set &hdcNUM=0
  26. LOOP #1=1,
  27. {*
  28.         CALL $--ret:&hdc user32.dll,GetDC,#0
  29.         CALC #&hdcNUM=%&hdcNUM%+1
  30.         IFEX $%&hdcNUM%>50, EXIT
  31.         IFEX $%&hdc%>0, EXIT
  32.         WAIT 0.9
  33. }
  34. set &ScaleCMD=-scalef -scale
  35. IFEX $%&hdc%>0,
  36. {*
  37.         CALL $--ret:&LOGPIXELSX Gdi32.dll,GetDeviceCaps,#%&hdc%,#88
  38.         set &ScaleCMD=-scalef:%&LOGPIXELSX% -scale:%&LOGPIXELSX%
  39. }
  40. CALL @WIND
  41. _SUB WIND,W611H422,批处理脚本,team TIPS -|CALL saveSCRIPT %&saveSCR%,%MyName%,,,-disminb %&ScaleCMD%
  42.         CALL setPOS WIN3
  43.         CALL SETtop
  44.         %&Font_Cmd%
  45.         set &saveSCR=
  46.         MEMO+ -3D &EG1,L5T0W521H360,,,
  47.         set n=0
  48.         forx* 隐藏运行 快捷方式 关联右键 自我删除,i,
  49.         {        ^CHEK %i%,L526T%n%W66H18,%i%,call BAT,
  50.                 calc n=%n%+20
  51.         }
  52.         LABE B,L5T362W100H16,空       
  53.         set @&EG1.MSG=0x00BB:set @B=换行   //捕获鼠标进入 事件, 执行命令
  54.                
  55.         LABE -left &BG1,L5T378W80H16,提示:支持拖入,,0xDF0029
  56.         ITEM &IG1,L221T368W50H25,重载,team CALL reloadSCRIPT|MESS=+icon1 刷新成功! @提示#OK*5000
  57.         ITEM &IG2,L271T368W50H25,清空,set @&EG1=,
  58.         ITEM &IG3,L321T368W50H25,浏览,CALL viewWCS,
  59.         ITEM &IG4,L371T368W50H25,新增,team set &saveSCR=B|KILL \,
  60.         ITEM &IG5,L421T368W50H25,保存,team set &saveSCR=A|KILL \,
  61.         ITEM &IG6,L471T368W50H25,取消,KILL \,
  62.         set @this.Visible=1
  63.         WAIT 0.9
  64.         CALL Cursor &IG1 &IG2 &IG3 &IG4 &IG5 &IG6
  65.         CALL reloadBAT
  66.         set @&EG1.MSG=0x0233::&wp,&lp, CALL getBG1 "%&wp%" "%&lp%"
  67.         set @&BG1.MSG=0x1000: CALL Mouse_In 支持拖入
  68.         CALL Mouse_Out &BG1
  69.        
  70. _END

  71. _SUB BAT
  72.         set @&EG1.Val=?a
  73.         find $%隐藏运行.Check%=1,set @&EG1=%a%%nl%%%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
  74.         find $%快捷方式.Check%=1,set @&EG1=%a%%nl%mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\iBAT.lnk""):b.TargetPath=""%~dp0iBAT.exe"":b.WorkingDirectory=""%~dp0"":b.Save:close")
  75.         find $%关联右键.Check%=1,set @&EG1=%a%%nl%for %%%%i in (bat cmd)do (%nl%reg add "HKCR\SystemFileAssociations\.%%%%i\shell\iBAT" /t REG_SZ /d "用iBAT打开" /f%nl%reg add "HKCR\SystemFileAssociations\.%%%%i\shell\iBAT" /v Icon /t REG_SZ /d "%~dp0iBAT.exe" /f%nl%reg add "HKCR\SystemFileAssociations\.%%%%i\shell\iBAT\command" /t REG_SZ /d "%~dp0iBAT.exe ""%%%%1" /f%nl%)       
  76.         find $%自我删除.Check%=1,set @&EG1=%a%%nl%(echo for %%%%%%%%i in ^(bat cmd^)do reg delete "HKCR\SystemFileAssociations\.%%%%%%%%i\shell\iBAT" /f%nl%echo taskkill /f /im iBAT.exe /t^&TIMEOUT /T 1 /NOBREAK^&del "%%%%userprofile%%%%\desktop\iBAT.lnk"^&cd..^&rd/s/q "%%%%~dp0")>"%~dp0卸载.bat"
  77. _END

  78. _SUB reloadBAT
  79.         set &noEG1=
  80.         set @&TABLA.Sel=?&SEL
  81.         ifex $%&SEL%>0,
  82.         {*
  83.                 set @&TABLA.Val=?%&SEL%.1;&scriptNAME
  84.                 FEXT &sEXT=%&scriptNAME%
  85.                 FIND $%&sEXT%=,
  86.                 {*
  87.                         set @&BG1=%&scriptNAME%
  88.                         ^set @&EG1=%%%&scriptNAME%%%
  89.                 }!
  90.                 {*
  91.                         set &noEG1=1
  92.                 }
  93.         }!
  94.         {*
  95.                 set &noEG1=1
  96.         }
  97.         ifex $%&noEG1%=1,set @&EG1=@Echo off&SetLocal EnableDelayedExpansion       
  98. _END

  99. _SUB 写入
  100. set 写入=WRIT-ANSI "D:\软件\iBAT\12.bat"
  101. %写入%,1,@echo off&%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
  102. %写入%,2,mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\iBAT.lnk""):b.TargetPath=""%~dp0iBAT.exe"":b.WorkingDirectory=""%~dp0"":b.Save:close")
  103. %写入%,3,for %%i in (bat cmd)do (
  104. %写入%,4,        reg add "HKCR\SystemFileAssociations\.%%i\shell\iBAT" /t REG_SZ /d "用iBAT打开" /f
  105. %写入%,5,        reg add "HKCR\SystemFileAssociations\.%%i\shell\iBAT" /v Icon /t REG_SZ /d "%~dp0iBAT.exe" /f
  106. %写入%,6,        reg add "HKCR\SystemFileAssociations\.%%i\shell\iBAT\command" /t REG_SZ /d "%~dp0iBAT.exe ""%%1" /f
  107. %写入%,7,)
  108. _END
复制代码


请教一下 能写个在编辑框指定行 或者获取光标位置 写入指定字符 的示例吗
回复

使用道具 举报

19290#
发表于 2024-6-6 08:40:37 | 只看该作者
比如按2次回车光标在第二行 点击一个ITEM 就能在光标位置插入预设的代码

点评

示例\Edit位置.wcs 获得光标位置: GetPos EditName PosStart PosEnd 移动动光标 到位置(可选择一段) SetPos EditName PosStart 替换,插入,删除 参见 示例\RichEdit-替换特殊符号.wcs 的 OnI  详情 回复 发表于 2024-6-6 12:52
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-30 20:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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