无忧启动论坛

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

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

    [复制链接]
15031#
发表于 2020-2-24 09:59:27 | 只看该作者
两个问题:
1、查找某个盘的自由空间,只要象SIZE的用法一样,给出路径可以是文件或目录;
2、有不有一个代码或工具删除所有无效的快捷方式,包括PINT到任务栏的;

点评

FORM -free &a=D: MESS. D盘可用空间为 %&a% 字节  详情 回复 发表于 2020-2-24 12:26
LINK ? %desktop%\s,&a IFEX [ '%&a%''' & ( %&a% ) ],MESS. 快捷方式有效! MESS 快捷方式无效  详情 回复 发表于 2020-2-24 12:21
回复

使用道具 举报

15032#
发表于 2020-2-24 12:21:26 | 只看该作者
hhh333 发表于 2020-2-24 09:59
两个问题:
1、查找某个盘的自由空间,只要象SIZE的用法一样,给出路径可以是文件或目录;
2、有不有一个 ...

LINK ? %desktop%\s,&a
IFEX [ '%&a%'<>'' & ( %&a% ) ], MESS 快捷方式有效! MESS 快捷方式无效

点评

这个样子吗?  详情 回复 发表于 2020-2-24 16:06
回复

使用道具 举报

15033#
发表于 2020-2-24 12:26:24 | 只看该作者
hhh333 发表于 2020-2-24 09:59
两个问题:
1、查找某个盘的自由空间,只要象SIZE的用法一样,给出路径可以是文件或目录;
2、有不有一个 ...

FORM -free &a=D:
MESS. D盘可用空间为 %&a% 字节
回复

使用道具 举报

15034#
发表于 2020-2-24 16:06:22 | 只看该作者
本帖最后由 hhh333 于 2020-2-24 18:02 编辑
527104427 发表于 2020-2-24 12:21
LINK ? %desktop%\s,&a
IFEX [ '%&a%''' & ( %&a% ) ], MESS 快捷方式有效! MESS 快捷方式无效

这个样子吗?
  1. FORX %DeskTop%\*.lnk,AnyLNK,0,
  2. {
  3. FDIR &p=%AnyLNK%
  4. FNAM &n=%AnyLNK%
  5. LINK ? %&p%\%&n%,&a
  6. IFEX [ '%&a%'<>'' & ( %&a% ) ],!FILE -q %AnyLNK%
  7. }
复制代码
PINT到任务栏的怎么判断?

点评

任务栏的有效性,和通常的快捷方式一样。 不过,直接删除是不行的。 (固定任务栏也不是在Pinned\Taskbar就会自动出现) 固定和取消是匹配的操作。 方法一: 保存正常的快捷方式,全部快捷方式删除,重置PIN  详情 回复 发表于 2020-2-24 18:48
任务栏的没试出来,看路径应该是%appdata%\Microsoft\Internet Explorer\Quick Launch%user Pinned\TaskBar\*.lnk 不过删了里面的快捷方式,任务栏上还是有,不清楚该怎么弄。  详情 回复 发表于 2020-2-24 18:29
试了一下,应该这样子: FORX %DeskTop%\*.lnk,&AnyLNK,0, { MSTR * &AnyLNK1=-5,0,&AnyLNK LINK ? %&AnyLNK1%,&AnyLNK2 IFEX [ '%&AnyLNK2%'='' | ! %&AnyLNK2% ], FILE -force -q "%&AnyLNK%" }  详情 回复 发表于 2020-2-24 18:19
回复

使用道具 举报

15035#
发表于 2020-2-24 18:19:46 | 只看该作者
hhh333 发表于 2020-2-24 16:06
这个样子吗?
PINT到任务栏的怎么判断?

试了一下,应该这样子:

FORX %DeskTop%\*.lnk,&AnyLNK,0,
{
        MSTR * &AnyLNK1=-5,0,&AnyLNK
        LINK ? %&AnyLNK1%,&AnyLNK2
        IFEX [ '%&AnyLNK2%'='' | ! %&AnyLNK2% ],  FILE -force -q "%&AnyLNK%"
}




本来看说明,有.lnk后缀的要加--f,不过测试失败,只好麻烦一点,用MSTR自行去掉.lnk后缀了。





点评

不会出现'%&AnyLNK2%'='' 的情况吧  详情 回复 发表于 2020-2-24 18:46
回复

使用道具 举报

15036#
发表于 2020-2-24 18:29:49 | 只看该作者
hhh333 发表于 2020-2-24 16:06
这个样子吗?
PINT到任务栏的怎么判断?

任务栏的没试出来,看路径应该是%appdata%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\*.lnk
不过删了里面的快捷方式,任务栏上还是有,不清楚该怎么弄。
回复

使用道具 举报

15037#
发表于 2020-2-24 18:46:23 | 只看该作者
527104427 发表于 2020-2-24 18:19
试了一下,应该这样子:

FORX %DeskTop%\*.lnk,&AnyLNK,0,

不会出现'%&AnyLNK2%'='' 的情况吧

点评

理论上应该不可能,不过微软这个东西,凡事皆有可能。  详情 回复 发表于 2020-2-24 18:49
回复

使用道具 举报

15038#
发表于 2020-2-24 18:48:27 | 只看该作者
本帖最后由 slore 于 2020-2-24 18:50 编辑
hhh333 发表于 2020-2-24 16:06
这个样子吗?
PINT到任务栏的怎么判断?

任务栏的有效性,和通常的快捷方式一样。
不过,直接删除是不行的。
(固定任务栏也不是在Pinned\Taskbar就会自动出现)

固定和取消是匹配的操作。

方法一:
保存正常的快捷方式,全部快捷方式删除,重置PINT的注册表,强制重启Explorer,再把正常的快捷方式重新PIN。

方法二:
WinXShell有Taskbar:Pin('cmd.exe')/Taskbar:UnPin('cmd.exe'),  Taskbar:UnPin('命令提示符.lnk')。

能PINT就能取消,等M更新吧,就是1,2行代码(固定,解锁),补一个UnPint即可。

点评

PINT功能应该是调用shell32中的功能实现的,可否用PECMD调用shell32中的功能实现UNPINT或者PINT -U  详情 回复 发表于 2020-2-24 19:25
回复

使用道具 举报

15039#
发表于 2020-2-24 18:49:52 | 只看该作者
hhh333 发表于 2020-2-24 18:46
不会出现'%&AnyLNK2%'='' 的情况吧

理论上应该不可能,不过微软这个东西,凡事皆有可能。
回复

使用道具 举报

15040#
发表于 2020-2-24 19:25:00 | 只看该作者
slore 发表于 2020-2-24 18:48
任务栏的有效性,和通常的快捷方式一样。
不过,直接删除是不行的。
(固定任务栏也不是在Pinned\Taskb ...

PINT功能应该是调用shell32中的功能实现的,可否用PECMD调用shell32中的功能实现UNPINT或者PINT -U

点评

有个方法。 用文件的右键菜单。 查询文件右键菜单 执行文件右键菜单  详情 回复 发表于 2020-2-24 20:11
我不知道PECMD怎么实现的,我就是Shell对象接口(COM),调用指定文件的右键菜单。不是简单的API直接调用。PECMD已经有PINT肯定这个对象已经处理了,再里面补充一个unpin就可以了。 把C++代码用PECMD来写一遍?C++  详情 回复 发表于 2020-2-24 19:30
回复

使用道具 举报

15041#
发表于 2020-2-24 19:30:37 | 只看该作者
hhh333 发表于 2020-2-24 19:25
PINT功能应该是调用shell32中的功能实现的,可否用PECMD调用shell32中的功能实现UNPINT或者PINT -U

我不知道PECMD怎么实现的,我就是Shell对象接口(COM),调用指定文件的右键菜单。不是简单的API直接调用。PECMD已经有PINT肯定这个对象已经处理了,再里面补充一个unpin就可以了。

把C++代码用PECMD来写一遍?C++的30行代码会变得非常晦涩难懂。很多系统内置的方法,比如
菜单名处理,就很费劲。用PECMD的话,等mdyblog更新,提供接口吧。
其他语言自己单独实现反而更容易,之前发过Pintool,au3的改改就行。

点评

1A: PINT 和 UNPINT在程序上是一样的。 取决于 后面的【[菜单名称|菜单标识|#字符串ID] 】。 菜单名称 不同,功能就不同。实际功能有系统决定。 1B: 对于 UNPINT, 实际系统选对 【菜单名称】即可。  详情 回复 发表于 2020-3-1 12:17
回复

使用道具 举报

15042#
发表于 2020-2-24 20:11:07 | 只看该作者
hhh333 发表于 2020-2-24 19:25
PINT功能应该是调用shell32中的功能实现的,可否用PECMD调用shell32中的功能实现UNPINT或者PINT -U

有个方法。
用文件的右键菜单。


查询文件右键菜单
  1. ENVI @@RMENU=&R;F:\a.exe
  2. MESS. %&R%
复制代码



执行文件右键菜单
  1. EXEC -runrmenu:锁定到任务栏(&K)   F:\a.exe
  2. MESS. %&error%
复制代码


点评

试了,没用,虽然执行了但,还有。  详情 回复 发表于 2020-2-25 08:16
回复

使用道具 举报

15043#
发表于 2020-2-24 22:21:34 | 只看该作者
mdyblog没有考虑开源pecmd吗
回复

使用道具 举报

15044#
发表于 2020-2-25 08:16:57 | 只看该作者
本帖最后由 hhh333 于 2020-2-25 08:19 编辑
红毛樱木 发表于 2020-2-24 20:11
有个方法。
用文件的右键菜单。
  1. logs * %curdir%\t2.log
  2. ENVI &d=%QuickLaunch%\User Pinned\TaskBar
  3. FORX %&d%\*.lnk,AnyLNK,0,
  4. {
  5.         FDIR &p=%AnyLNK%
  6.         FNAM &n=%AnyLNK%
  7.         LINK ? %&p%\%&n%,&a
  8.         `ENVI @@RMENU=&R;%AnyLNK%
  9.         `MESS. %&R%
  10.         IFEX %a%,!TEAM EXEC -runrmenu:从任务栏取消固定(&K)  %AnyLNK%|FILE -force -q %AnyLNK%
  11. }
复制代码


试了,没用,虽然执行了但,还有。

点评

来个偷梁换柱:  详情 回复 发表于 2020-2-25 10:13
回复

使用道具 举报

15045#
发表于 2020-2-25 10:13:48 | 只看该作者
hhh333 发表于 2020-2-25 08:16
试了,没用,虽然执行了但,还有。

来个偷梁换柱:

  1. logs * %curdir%\t2.log
  2. ENVI &d=%QuickLaunch%\User Pinned\TaskBar
  3. FORX %&d%\*.lnk,AnyLNK,0,
  4. {
  5.         FDIR &p=%AnyLNK%
  6.         FNAM &n=%AnyLNK%
  7.         LINK ? %&p%\%&n%,&a
  8.         `ENVI @@RMENU=&R;%AnyLNK%
  9.         `MESS. %&R%
  10.         IFEX %a%,! TEAM PUTF -dd -len=0 "%a%",0,zero| EXEC -runrmenu:从任务栏取消固定(&K)  %a%| FILE -force -q "%a%"| FILE -force -q "%AnyLNK%"
  11. }
复制代码

点评

还是不行,与前面一样,变白方块,也没取消固定的右键  详情 回复 发表于 2020-2-25 11:12
行吗?我试一下才  详情 回复 发表于 2020-2-25 10:58
回复

使用道具 举报

15046#
发表于 2020-2-25 10:58:06 | 只看该作者

行吗?我试一下才
回复

使用道具 举报

15047#
发表于 2020-2-25 11:12:33 | 只看该作者

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

点评

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

使用道具 举报

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

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

点评

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

使用道具 举报

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

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

点评

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

使用道具 举报

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

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

点评

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

使用道具 举报

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

我在win10中试的

点评

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

使用道具 举报

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

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

点评

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

使用道具 举报

15053#
发表于 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中的"行高"无效,只有"头不高"可以。
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

15056#
发表于 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
回复

使用道具 举报

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


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

使用道具 举报

15058#
发表于 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
复制代码


回复

使用道具 举报

15059#
发表于 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
回复

使用道具 举报

15060#
 楼主| 发表于 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来规避这个问题。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-1-20 23:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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