无忧启动论坛

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

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

    [复制链接]
15061#
发表于 2020-2-25 11:12:33 | 只看该作者

还是不行,与前面一样,变白方块,也没取消固定的右键

点评

可能是目标路径只读了吧,不让写东西。  详情 回复 发表于 2020-2-25 12:08
回复

使用道具 举报

15062#
发表于 2020-2-25 12:08:45 | 只看该作者
hhh333 发表于 2020-2-25 11:12
还是不行,与前面一样,变白方块,也没取消固定的右键

可能是目标路径只读了吧,不让写东西。

点评

右键菜单执行还是执行了,执行以后把原文件删了后,再点图标就没有“从任务栏取消固定”这个右键菜单了。  详情 回复 发表于 2020-2-25 12:40
回复

使用道具 举报

15063#
发表于 2020-2-25 12:40:45 | 只看该作者
527104427 发表于 2020-2-25 12:08
可能是目标路径只读了吧,不让写东西。

右键菜单执行还是执行了,执行以后把原文件删了后,再点图标就没有“从任务栏取消固定”这个右键菜单了。

点评

那就奇怪了,我在win7试的,没问题。不过右键不是叫那个名字。  详情 回复 发表于 2020-2-25 12:48
回复

使用道具 举报

15064#
发表于 2020-2-25 12:48:32 | 只看该作者
hhh333 发表于 2020-2-25 12:40
右键菜单执行还是执行了,执行以后把原文件删了后,再点图标就没有“从任务栏取消固定”这个右键菜单了。

那就奇怪了,我在win7试的,没问题。不过右键不是叫那个名字。

点评

我在win10中试的  详情 回复 发表于 2020-2-25 12:58
回复

使用道具 举报

15065#
发表于 2020-2-25 12:58:29 | 只看该作者
527104427 发表于 2020-2-25 12:48
那就奇怪了,我在win7试的,没问题。不过右键不是叫那个名字。

我在win10中试的

点评

固定到任务栏也不用pint,用右键菜单。 弄一样的试试嘛  详情 回复 发表于 2020-2-25 13:04
回复

使用道具 举报

15066#
发表于 2020-2-25 13:04:27 来自手机 | 只看该作者
hhh333 发表于 2020-2-25 12:58
我在win10中试的

固定到任务栏也不用pint,用右键菜单。
弄一样的试试嘛

点评

右键菜单清除PINT到任务栏的快捷方式有时成功有时不成功,不稳定。多数不成功,特别是对于已经失效的快捷方式。  详情 回复 发表于 2020-2-26 19:53
回复

使用道具 举报

15067#
发表于 2020-2-25 16:44:19 | 只看该作者
  1. ENVI^ EnviMode=1
  2. ENVI$ &TAB=09
  3. ENVI$ &NL=0d 0a
  4. CALL @MAIN
  5. _SUB MAIN,W1000H800
  6.     TEAM CALC &df1=220*%&DPI%| CALC &df2=110*%&DPI%| CALC &df3=100*%&DPI%| CALC &df4=115*%&DPI%| CALC &df5=90*%&DPI%| CALC &df6=130*%&DPI%| CALC &df7=360*%&DPI%| CALC &df8=8000*%&DPI%
  7.     TEAM CALC #&df1=%&df1%| CALC #&df2=%&df2%| CALC #&df3=%&df3%| CALC #&df4=%&df4%| CALC #&df5=%&df5%| CALC #&df6=%&df6%| CALC #&df7=%&df7%| CALC #&df8=%&df8%
  8.     ENVI &dfz=*%&df1%:              设备名称%&TAB%+%&df2%:设备类型%&TAB%+%&df3%:状态%&TAB%*%&df4%:    版本%&TAB%+%&df5%:日期%&TAB%+%&df6%:服务名%&TAB%*%&df7%:                        INF文件%&TAB%*%&df8%:                 唯一ID/硬件ID/兼容ID%&TAB%*0:勾选标识
  9.     //-font:字体大小[:字体名][:头部高:头部颜色:渐变度:::字体高:字体宽:行高]
  10.     TABL -font:13:微软雅黑:5:0xFFF000:0x000FFF:::100:100:100 &TABL1,L29T26W950H780,%&dfz%,,0x10440  //BUG,0x800无效。(拖拉标题调整列顺序)
  11.     ENVI @&TABL1.val=1*#;测试测试%&TAB%测试测试测试测试测试测试
  12. _END

复制代码
TABL中的"行高"无效,只有"头不高"可以。
回复

使用道具 举报

15068#
发表于 2020-2-26 09:00:02 | 只看该作者
好软件,还需要学习啊,看不懂
回复

使用道具 举报

15069#
发表于 2020-2-26 09:32:00 | 只看该作者
好东西  谢谢分享了
回复

使用道具 举报

15070#
发表于 2020-2-26 19:53:35 | 只看该作者
本帖最后由 hhh333 于 2020-2-26 21:22 编辑
红毛樱木 发表于 2020-2-25 13:04
固定到任务栏也不用pint,用右键菜单。
弄一样的试试嘛

右键菜单清除PINT到任务栏的快捷方式有时成功有时不成功,不稳定。多数不成功,特别是对于已经失效的快捷方式。
终于搞好了,不成功还是快捷方式失效而引起的,复制一个有效的再用右键就可以了,代码如下:
  1. _SUB KILLPINT
  2. ENVI &d=%QuickLaunch%\User Pinned\TaskBar
  3. ENVI &unlock=从任务栏取消固定(&K)
  4. FIND $%BootOS%=W7,ENVI &unlock=从任务栏脱离(&K)
  5. FORX %&d%\*.lnk,AnyLNK,0,
  6. {
  7.         FDIR &p=%AnyLNK%
  8.         FNAM &n=%AnyLNK%
  9.         LINK ? %&p%\%&n%,&a
  10.         `ENVI @@RMENU=&R;%AnyLNK%
  11.         `MESS. %&R%
  12.         IFEX %a%,!
  13.         {
  14.                 FILE -q %Programs%\附件\记事本.lnk=>"%AnyLNK%"
  15.                 EXEC -runrmenu:%&unlock%  %AnyLNK%
  16.                 `WAIT 1000
  17.                 `FILE -force -q %AnyLNK%
  18.         }
  19. }
  20. _END
复制代码
而实际上,用手工操作,任务栏上失效的快捷方式还是可以解锁的,说明这个右键菜单操作还是有区别,这个就要M大来解决了。

点评

我觉得还是逻辑上的问题,从%QuickLaunch%目录直接右键取消锁定无限项目,和从任务栏直接取消无效项目应该不是一回事的。  详情 回复 发表于 2020-2-27 02:22
回复

使用道具 举报

15071#
发表于 2020-2-27 02:22:06 来自手机 | 只看该作者
本帖最后由 红毛樱木 于 2020-2-27 02:23 编辑
hhh333 发表于 2020-2-26 19:53
右键菜单清除PINT到任务栏的快捷方式有时成功有时不成功,不稳定。多数不成功,特别是对于已经失效的快捷 ...


我觉得还是逻辑上的问题,从%QuickLaunch%目录直接右键取消锁定无限项目,和从任务栏直接取消无效项目应该不是一回事的。
可以尝试给任务栏发送右键消息试试,比较绕,有空研究下
回复

使用道具 举报

15072#
发表于 2020-2-27 23:22:38 | 只看该作者
本帖最后由 红毛樱木 于 2020-2-29 02:41 编辑
  1. CALL @MAIN
  2. _SUB MAIN,W800H600
  3.     SWIN -:Page1,L42T5W194H125,,0x100
  4.     SWIN Swin1:Page1,L42T300W194H125,,0x80
  5. _END
复制代码



SWIN指定不了“0x80水平滚动条, 0x100垂直滚动条”


-------------------------------------------------------------
另外:

  1. CALL @MAIN
  2. _SUB MAIN,W800H600
  3.     SWIN Swin1:Page1,L20T20W700H400,,
  4. _END

  5. _SUB Page1,W700H1000000
  6.     ENVI @Swin1.bkcolor=0xFFFFFF    //会引起内存耗尽
  7. _END

复制代码
上下拖动滚动条会耗尽内存。


-------------------------------------------------------------------
另外,SWIN里面的数据不能通过ENVI @方式改变。
  1. CALL @MAIN
  2. _SUB MAIN,W800H600
  3.     SWIN Swin1:Page1:Page2,L20T20W700H400,,
  4.     ENVI @Swin1:&Label1=1   //测试1
  5.     ENVI @Page1:&Label1=2   //测试2
  6.     ENVI @Page2:&Label1=3   //测试3
  7. _END

  8. _SUB Page1,W700H1000000
  9.     LABE &Label1,L20T280W128H48,原始
  10. _END
复制代码


回复

使用道具 举报

15073#
发表于 2020-2-29 22:22:13 | 只看该作者
  1. FORX %CurDir%\Path1\*.DLL,AnyDLL,0,CALL $%AnyDLL%
复制代码


FORX搜索文件的时候会把更长扩展名的文件放里面,比如B.DLLABC就被放进来了。
一直这个问题,忘记反馈了。

点评

Window 好笑就这样。 CMD命令行下 dir *.dll 也是这样。 目前还没找到合适的API来规避这个问题。  详情 回复 发表于 2020-3-1 12:01
回复

使用道具 举报

15074#
 楼主| 发表于 2020-3-1 12:01:54 | 只看该作者
本帖最后由 mdyblog 于 2020-3-1 12:04 编辑
红毛樱木 发表于 2020-2-29 22:22
FORX搜索文件的时候会把更长扩展名的文件放里面,比如B.DLLABC就被放进来了。
一直这个问题,忘记反馈 ...

Window 好象就这样。
CMD命令行下
dir *.dll
也是这样。


目前还没找到合适的API来规避这个问题。
回复

使用道具 举报

15075#
 楼主| 发表于 2020-3-1 12:17:07 | 只看该作者
slore 发表于 2020-2-24 19:30
我不知道PECMD怎么实现的,我就是Shell对象接口(COM),调用指定文件的右键菜单。不是简单的API直接调用。 ...

1A: PINT  和 UNPINT在程序上是一样的。
取决于 后面的【[菜单名称|菜单标识|#字符串ID] 】。

菜单名称 不同,功能就不同。实际功能有系统决定。

1B:
对于 UNPINT, 实际系统选对  【菜单名称】即可。


1C:
Win10 ,也可写到  PECMD.EXE.USRCFG.INI的
FromStartMenu:?|(从.开始.菜单)|(從.開始.菜單)|(From .Start. Menu)
FromTaskBand:?|(从任务栏)|(從任務欄)|(From Task Band)


然后调用
PINT -TaskBand|-StartMenu
即可






2:
EXEC -runrmenu:菜单项名   文件名   
就是调用 PINT的 实现的。


点评

Windows 操作系统设计的时候不会不同系统用不同的资源。 菜单是有内部名称的, taskbarpin, taskbarunpin,直接DoVerb就完了。  详情 回复 发表于 2020-3-1 12:28
回复

使用道具 举报

15076#
发表于 2020-3-1 12:28:37 | 只看该作者
本帖最后由 slore 于 2020-3-1 12:34 编辑
mdyblog 发表于 2020-3-1 12:17
1A: PINT  和 UNPINT在程序上是一样的。
取决于 后面的【[菜单名称|菜单标识|#字符串ID] 】。

Windows 操作系统设计菜单不会不同系统用不同的资源名调用,不然能把程序员累死。

菜单是有内部名称的, taskbarpin, taskbarunpin,直接DoVerb就完了,不需要把不同语言的菜单定义出来。中文,繁体中文,英语,日语,韩语,法语,土耳其,阿拉伯等等。。。写配置文件得多难用。
回复

使用道具 举报

15077#
发表于 2020-3-1 12:45:23 | 只看该作者
slore 发表于 2020-3-1 12:28
Windows 操作系统设计菜单不会不同系统用不同的资源名调用,不然能把程序员累死。

菜单是有内部名称的 ...

PE下大部分用的都是第三方开始菜单,然后这两个地方名称不一样了,不知道会不会有影响到你说的内部名称

点评

好的开始菜单代替软件,会接管系统的菜单。 startpin, startunpin 正常系统,StartIsBack也可以。 其他菜单的PE下也不主流,撑死3个,要用的自己处理。 即便是第三方程序,也直接可以读取对应的第三方开始菜单  详情 回复 发表于 2020-3-1 12:50
回复

使用道具 举报

15078#
发表于 2020-3-1 12:50:40 | 只看该作者
红毛樱木 发表于 2020-3-1 12:45
PE下大部分用的都是第三方开始菜单,然后这两个地方名称不一样了,不知道会不会有影响到你说的内部名称

好的开始菜单代替软件,会接管系统的菜单。

startpin, startunpin 正常系统,StartIsBack也可以。
其他菜单的PE下也不主流,撑死3个,要用的自己处理。
即便是第三方程序,也直接可以读取对应的第三方开始菜单的 资源 名,
不用自己配置各种语言。
回复

使用道具 举报

15079#
 楼主| 发表于 2020-3-1 14:00:34 | 只看该作者
slore 发表于 2020-3-1 12:50
好的开始菜单代替软件,会接管系统的菜单。

startpin, startunpin 正常系统,StartIsBack也可以。

有源代码吗?

点评

获取菜单,处理每个菜单项你代码有吧。 pcm->GetCommandString(mmi.wID, GCS_VERBW, NULL, (char *)verbbuffer, MAX_PATH); 可以获得到菜单名。  详情 回复 发表于 2020-3-1 19:09
用右键菜单还是比较绕,也不通用,虽然现在工作没问题。slore说的简单些。  详情 回复 发表于 2020-3-1 18:42
回复

使用道具 举报

15080#
发表于 2020-3-1 18:42:40 | 只看该作者

用右键菜单还是比较绕,也不通用,虽然现在工作没问题。slore说的简单些。
回复

使用道具 举报

15081#
发表于 2020-3-1 19:09:25 | 只看该作者
本帖最后由 slore 于 2020-3-1 19:13 编辑

都开源好几年了。获取菜单,处理每个菜单项你代码有吧。

pcm->GetCommandString(mmi.wID, GCS_VERBW, NULL, (char *)verbbuffer, MAX_PATH);



IContextMenu :: GetCommandString方法
获取有关快捷菜单命令的信息,包括帮助字符串和命令的语言无关或规范名称。
GCS_VERBA
pszName设置为ANSI字符串,其中包含菜单项与语言无关的命令名称。
GCS_VERBW
pszName设置为Unicode字符串,其中包含菜单项与语言无关的命令名称。

回复

使用道具 举报

15082#
 楼主| 发表于 2020-3-2 02:06:06 | 只看该作者
slore 发表于 2020-3-1 19:09
都开源好几年了。获取菜单,处理每个菜单项你代码有吧。

pcm->GetCommandString(mmi.wID, GCS_VERBW,  ...

用  API/COM, 比如 FolderItemVerbs
怎么实现?

点评

WAIT = 线程等待为什么会卡很久?  详情 回复 发表于 2020-3-3 13:00
回复

使用道具 举报

15083#
发表于 2020-3-3 13:00:02 | 只看该作者
mdyblog 发表于 2020-3-2 02:06
用  API/COM, 比如 FolderItemVerbs
怎么实现?
  1. ENVI^ ENVIMODE=1
  2. CALL @MAIN
  3. _SUB MAIN,W800H600,TEST,
  4.     ENVI @this.visible=1
  5.     THREAD CALL B &c
  6.     WAIT =%&&__LastTID%
  7.     MESS. OVER<_SUB MAIN>
  8. _END

  9. _SUB B
  10.     CALC &a=1+2
  11. _END
复制代码



WAIT =
线程等待为什么会卡很久?

点评

WAIT = 是专门设计的, 用来 死等。极少数逻辑中途需要。  详情 回复 发表于 2020-3-24 03:31
回复

使用道具 举报

15084#
发表于 2020-3-4 01:23:31 | 只看该作者
本帖最后由 红毛樱木 于 2020-3-7 17:38 编辑

CHEK控件如果用
※背景进度: ENVI @窗口或控件名.percent=[百分比][C|R|L|F][:背景色][:进度色][:文本色][:文本]
会随机性崩溃(RADI控件也是同样问题、后面发现GROU空间也有这问题)

  1. CALL @MAIN
  2. _SUB MAIN,W800H600
  3.     CHEK Check1,L180T336W100H20,可写挂载,,1
  4.     ENVI @this.Visible=1
  5.     WAIT 1000
  6.     TEAM ENVI @Check1.percent=100F:0xFFFFFF:0xFFFFFF:0x000000:
  7. _END
复制代码



点评

先要 disable  详情 回复 发表于 2020-3-24 03:26
回复

使用道具 举报

15085#
发表于 2020-3-6 18:43:02 | 只看该作者
本帖最后由 hhh333 于 2020-3-6 20:59 编辑

我是不是发现了一个bug,大家来看一看
核心代码是:RAMD ImDisk,L438,NTFS,Y:,ImDisk
第一次运行,没有问题,很快,进行挂载如MMC.WIM
第二次运行,对Y盘容量进行扩充:RAMD ImDisk,L696,,Y:,ImDisk (或者RAMD ImDisk,L696,NTFS,Y:,ImDisk,要不要NTFS效果一样)。很慢,约要半分钟以上,盘的容量扩展成功,但原来挂载的MMC丢失,新挂载的如NET.WIM没有问题;
第三次运行,再扩容如:RAMD ImDisk,L900,,Y:,ImDisk ,很快,也不丢失前面的NET.WIM的挂载;
以后再扩容不再有问题。
使用含IMDISK的与不含的PECMD没有区别,用IMDISK的驱动15年和最新的也一样。

以上是用硬盘启动时进行测试的结果,回头我再虚拟机测一下,不会与机器有关吧?

**刚才试了,虚拟机中好像64位的没有问题,但实机64位与32位都有问题。总之就是第一次扩容慢且丢失原挂载,以后就不会了。

点评

你这命令是完全重新生成Y盘了。扩容应该是这样的吧: RAMD ImDisk* -e -s 696M -m Y:  详情 回复 发表于 2020-3-6 19:00
回复

使用道具 举报

15086#
发表于 2020-3-6 19:00:47 | 只看该作者
hhh333 发表于 2020-3-6 18:43
我是不是发现了一个bug,大家来看一看
核心代码是:RAMD ImDisk,L438,NTFS,Y:,ImDisk
第一次运行,没有问 ...

你这命令是完全重新生成Y盘了。扩容应该是这样的吧:
RAMD ImDisk* -e -s 696M -m Y:

点评

你这种用法似乎就没有问题,PECMD的帮助看起来不明所以,比较乱。说到的扩容就是我前面的用法。  详情 回复 发表于 2020-3-6 20:49
如果那么用不对的话,第三次以后也没问题,这个怎么解释?  详情 回复 发表于 2020-3-6 19:59
这么用的吗?我刚才在64位实机用我原先的方法也有问题,但虚拟机中64位好像没有问题。  详情 回复 发表于 2020-3-6 19:58
回复

使用道具 举报

15087#
发表于 2020-3-6 19:58:25 | 只看该作者
527104427 发表于 2020-3-6 19:00
你这命令是完全重新生成Y盘了。扩容应该是这样的吧:
RAMD ImDisk* -e -s 696M -m Y:

这么用的吗?我刚才在64位实机用我原先的方法也有问题,但虚拟机中64位好像没有问题。

点评

-e 一般的用法是, 调整特性参数。 比如 改为 只读。 另外 好象可用来扩容;此时需要重新格式化。  详情 回复 发表于 2020-3-24 03:24
回复

使用道具 举报

15088#
发表于 2020-3-6 19:59:49 | 只看该作者
527104427 发表于 2020-3-6 19:00
你这命令是完全重新生成Y盘了。扩容应该是这样的吧:
RAMD ImDisk* -e -s 696M -m Y:

如果那么用不对的话,第三次以后也没问题,这个怎么解释?
回复

使用道具 举报

15089#
发表于 2020-3-6 20:49:25 | 只看该作者
527104427 发表于 2020-3-6 19:00
你这命令是完全重新生成Y盘了。扩容应该是这样的吧:
RAMD ImDisk* -e -s 696M -m Y:

你这种用法似乎就没有问题,PECMD的帮助看起来不明所以,比较乱。说到的扩容就是我前面的用法。

点评

这个很好理解啊, RAMD ImDisk 是兼容PECMD4.0的用法 RAMD ImDisk* 是新开发的用法,后面可以跟imdisk.exe的所有参数  详情 回复 发表于 2020-3-6 21:03
回复

使用道具 举报

15090#
发表于 2020-3-6 21:01:33 | 只看该作者
希望M大给个说法,同时把这个RAMD帮助再细化一下。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-17 04:00

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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