无忧启动论坛

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

用 PECMD 实现截屏到桌面几个方案

[复制链接]
31#
发表于 昨天 09:14 | 只看该作者
martin313 发表于 2026-2-27 09:05
set dir=%desktop%
team~ set count=1~ loop #1=1, ifex %dir%\%count%.jpg, calc count=%count% + 1! exi ...

我这也没反应,不懂是不是pecmd的问题。真奇怪啊。
回复

使用道具 举报

32#
发表于 昨天 09:15 | 只看该作者
感谢分享!
回复

使用道具 举报

33#
发表于 昨天 09:29 | 只看该作者
martin313 发表于 2026-2-27 09:05
set dir=%desktop%
team~ set count=1~ loop #1=1, ifex %dir%\%count%.jpg, calc count=%count% + 1! exi ...

已经搞清楚了,是pecmd版本问题,之前用的是V201201.88.05.86 x64不行,换了V201201.88.05.94 X64就行了
回复

使用道具 举报

34#
发表于 昨天 13:56 | 只看该作者
支持分享
回复

使用道具 举报

35#
发表于 昨天 15:05 | 只看该作者
来学习下
回复

使用道具 举报

36#
发表于 昨天 15:28 来自手机 | 只看该作者
感谢分享
回复

使用道具 举报

37#
发表于 昨天 19:16 | 只看该作者
ENVI path=%Desktop%
ENVI i=1
THREAD* WAIT 3900
THREAD* TEAM WAIT 3000| SEND #17_,#86_,#86^,#17^    //Ctrl-V
WAIT 200
SEND VK_SNAPSHOT    //#44
WAIT 100
SCRN -cap %path%\截屏_%i%.jpg, 1
这段代码的逻辑就有问题:
1.截屏的逻辑是,先发送VK_SNAPSHOT进行截屏,再打开画图软件,再Ctrl+V,才会把截屏复制到画图软件,但不会自动保存。如下:
     SEND VK_SNAPSHOT
     EXEC mspaint.exe
     WAIT 1000
     SEND #17_,#86_,#86^,#17^
2.SCRN -cap %path%\截屏_%i%.jpg, 1  就是截屏,且有保存动作,跟上面的功能重复。
3.THREAD* WAIT 3900 是什么鬼,多线程WAIT?等于没有WAIT,没有任何意义。

点评

深奥了。 ENVI path=%Desktop% SCRN -cap %path%\截屏_%i%.jpg, 1 5大的意思是仅上面两行代码就可以实现截屏,并保存桌面?但不会依次保存 而: SEND VK_SNAPSHOT EXEC mspaint.exe WA  详情 回复 发表于 昨天 21:11
回复

使用道具 举报

38#
 楼主| 发表于 昨天 21:11 | 只看该作者
本帖最后由 静庵 于 2026-2-27 21:19 编辑
527104427 发表于 2026-2-27 19:16
这段代码的逻辑就有问题:
1.截屏的逻辑是,先发送VK_SNAPSHOT进行截屏,再打开画图软件,再Ctrl+V,才会 ...

深奥了。
   ENVI path=%Desktop%
   SCRN -cap %path%\截屏_%i%.jpg, 1
5大的意思是仅上面两行代码就可以实现截屏,并保存桌面?但不会依次保存
而: SEND VK_SNAPSHOT
        EXEC mspaint.exe
        WAIT 1000
        SEND #17_,#86_,#86^,#17^
则截屏到画图,用画图编辑保存?
若此,m大的代码:
   set dir=%desktop%

   // 注册热键 F11 执行截屏
   HOTK F11, CALL 截屏
_SUB 截屏
    team~ set count=1~ loop #1=1, ifex %dir%\截屏_%count%.jpg, calc count=%count% + 1! exit
    scrn -cap %dir%\截屏_%count%.jpg, 1
    WAIT 100
    MESS 已截屏保存为:截屏_%count%.jpg @完成 #OK *2000
_END

// 保持脚本运行
WAIT - -1
应该是可行的,但为何我在 PE 中加载没有反应呢

点评

看一下帮助文件,HOTK 只能在配置文件里才有效。  详情 回复 发表于 昨天 21:53
回复

使用道具 举报

39#
发表于 昨天 21:21 | 只看该作者
这个很多年前,我和作者提过这个需求,作者加了截图参数,也给力几个现成的wcs
回复

使用道具 举报

40#
发表于 昨天 21:23 | 只看该作者
截图gui.wcs
SCRN  -gui

截图snapsot.wcs
ENVI^  ForceLocal=1
//IFEX X.LOG, LOGS * X.LOG
SET &capd=%DeskTop%
FIND $%capd%=, SET capd=%CurDir%
SET &fn=屏幕截图####
SET &wid=0:0
set &ext=PNG
SET &fid=1
//系统设置大字体时缩小界面字体
TEAM ENVI &Font_Size=| REGI #HKCU\Control Panel\Desktop\WindowMetrics\AppliedDPI,&&Font_Size
IFEX $%&Font_Size%=0x78, ENVI &&Font_Size=7! ENVI &&Font_Size=9  // 0x60为100%,0x78为125%,0x90为150%
ENVI &&Font_Cmd=IFEX %windir%\fonts\simsun*, ENVI @this.Font=%&Font_Size%:simsun! ENVI @this.Font=%&Font_Size%
CALL @WIN1

_SUB WIN1,W535H225,截图,
    %&Font_Cmd%
    LABE -VCENTER -RIGHT LABE1,L12T38W60H24,延时(秒):,,
    EDIT -VCENTER -3D -RIGHT Delay,L74T38W40H24,0,,
    SPIN SPIN1,L116T39W18H22,:0:100,,0x80,0x80
    LABE -VCENTER -RIGHT LABE2,L150T38W40H24,对象:,,
    EDIT -VCENTER -3D wWid,L192T38W50H24,%wid%,,
    LABE -VCENTER -RIGHT LABE3,L267T38W58H24,保存类型:,,
    LIST lEXT,L326T40W55H20,PNG|BMP|JPG|GIF|TIFF,OnEXT,%ext%,
    LABE -VCENTER LABE4,L12T90W90H30,保存位置及文件,,
    EDIT -VCENTER -3D wFN,L107T90W380H30,%&capd%\%fn%.%ext%,NAME fn=%wFN%,
    ITEM ITEM2,L492T89W25H30,>>,OnBrow,
//    ITEM ITEM1,L224T131W80H50,截图, OnCap,
    ITEM ITEM1,L160T130W80H50,截图, OnCap,
    ENVI @wFN.MSG=0x02A1: Mouse_In 文件名模板,####为自动编号\n$H $M $D $H $N $S 依次为年月日时分秒
    ENVI @wFN.MSG=0x02A3: TIPS *
    LABE -VCENTER -RIGHT LABE5,L386T38W50H24,编号:,,
    EDIT -VCENTER -3D -RIGHT wFID,L457T38W40H24,,%fid%,
    SPIN SPINFID,L499T39W18H22,:0:100:%fid%,,0x80,0x80
    ITEM ITEM3,L300T130W80H50,退出, kill @WIN1
_END
_SUB Mouse_In
    TEAM ENVI @@Cur=?&&x;&&y| TIPS* %*,5000,1,@AL%&x%T%&y%
_END

_SUB OnBrow
    BROW &&capdir,*%capd%,选择一个文件夹
    FIND $%capdir%=, EXIT
    ENVI &capd=%capdir%
    NAME fn=%wFN%
    FEXT ext=%wFN%
    ENVI @wFN=%&capd%\%fn%.%ext%
_END

_SUB OnEXT
    FDIR capd=%wFN%
    NAME fn=%wFN%
    ENVI @wFN=%&capd%\%fn%.%lEXT%
_END

_SUB OnCap
    SET &wid=%wWid%
    SET &afn=%wFN%
    ENVI @this.visable=0
    CALC &&ms=%Delay%
    CALC &ms=%&ms% * 1000#0
    IFEX $%ms%<0, SET ms=0
    CALC #&ms=%&ms% + 2
    WAIT 300  //最少200毫秒
    FIND $%wFN%<>,
    {*  WAIT %&ms%
        NAME &&nm=%afn%
        FEXT &&ext=%afn%
        FIND $%ext%<>, SET ext=.%ext%
        FDIR &&dir1=%afn%
        SET fid=%wFID%
        CALC #fid=%fid%
        RSTR &&fid5=5,0000%fid%
        RSTR &&fid4=4,0000%fid%
        RSTR &&fid3=3,0000%fid%
        RSTR &&fid2=2,0000%fid%
        RSTR &&fid1=1,0000%fid%
        DATE *space &&dat  //2015 9 25 5 10 57 22 46
        MSTR &&Y,&&M,&&D,&&H,&&N,&&S=<1><2><3><5><6><7>%&dat%
        SED &nm=1,#######*,%fid%,%nm%  //6个以上
        SED &nm=1,#####,%fid5%,%nm%
        SED &nm=1,####,%fid4%,%nm%
        SED &nm=1,###,%fid3%,%nm%
        SED &nm=1,##,%fid2%,%nm%
        SED &nm=1,#,%fid1%,%nm%
        SED &nm=0,$Y,%Y%,%nm%
        SED &nm=0,$M,%M%,%nm%
        SED &nm=0,$D,%D%,%nm%
        SED &nm=0,$H,%H%,%nm%
        SED &nm=0,$N,%N%,%nm%
        SED &nm=0,$S,%S%,%nm%
        SET afn=%dir1%\%nm%%ext%
        SCRN -cap %afn%,%wid%
        CALC #fid=%fid%+1
        ENVI @SPINFID.VAL=%fid%
        ENVI @wFID=%fid%
    }
    WAIT 10
    ENVI @this.visable=1
_END

回复

使用道具 举报

41#
发表于 昨天 21:25 | 只看该作者
截图键+mspaint.wcs
WAIT 100
SEND VK_SNAPSHOT  //#44
WAIT 100
EXEC --max mspaint.exe
TEAM WAIT 3000 | SEND #17_,#86_,#86^,#17^  //Ctrl-V

点评

请教:这段代码可不可以改为打开画图的窗口不全屏  详情 回复 发表于 昨天 21:50
回复

使用道具 举报

42#
发表于 昨天 21:27 | 只看该作者
截图-全屏.wcs
SCRN  -cap  fulllscreen.BMP,0

SCRN  -cap  fulllscreen.png,0

截图-全屏-延时.wcs
TEAM WAIT 100| SCRN  -cap  fulllscreen.BMP,0

点评

受教了,高手在潜水。 截图键+mspaint.wcs WAIT 100 SEND VK_SNAPSHOT //#44 WAIT 100 EXEC --max mspaint.exe TEAM WAIT 3000 | SEND #17_,#86_,#86^,#17^ //Ctrl-V 截全屏,复制到画图编辑,而后保  详情 回复 发表于 昨天 21:38
回复

使用道具 举报

43#
发表于 昨天 21:29 | 只看该作者
截图抓图界面.wcs

ENVI^  ForceLocal=1
LOGS * X.LOG
SET &fn=screen.png
SET &wid=0
CALL @WIN1

_SUB WIN1,W449H220,截图,
    LABE -VCENTER LABE1,L12T42W68H30,延时(秒):,,
    EDIT -VCENTER -3D Delay,L84T43W63H30,0,,
    SPIN SPIN1,L156T41W18H34,:0:100,,0x80,0x80
    ITEM ITEM1,L191T141W60H30,抓图, OnDo,
    LABE -VCENTER LABE2,L12T90W48H30,文件名,,
    EDIT -VCENTER -3D wFN,L70T90W335H30,%fn%,,
    ITEM ITEM2,L410T89W21H30,>>,OnBrow,
    LABE -VCENTER -RIGHT LABE3,L229T41W55H30,对象:,,
    EDIT -VCENTER -3D wWid,L291T41W90H30,%wid%,,
_END

_SUB OnBrow
    BROW &&fn,%wFN%,选择一个文件,PNG|*.PNG|BMP|*.BMP|JPG|*.JPG|GIF|*.GIF|TIFF|*.TIFF|所有|*.*
    FIND $%fn%=, EXIT
    ENVI @wFN=%fn%   
_END


_SUB OnDo
    SET &wid=%wWid%
    SET &fn=%wFN%
    FIND $%fn%=, EXIT
    ENVI @this.visable=0
    CALC &&ms=%Delay%
    CALC &ms=%&ms% * 1000#0
    IFEX $%ms%<0, SET ms=0
    CALC #&ms=%&ms% + 10
    WAIT %&ms%
    SCRN -cap %fn%,%wid%
    WAIT 10
    ENVI @this.visable=1
_END

回复

使用道具 举报

44#
发表于 昨天 21:29 | 只看该作者
截图抓图界面1.wcs

ENVI^  ForceLocal=1
LOGS * X.LOG
SET &capd=%DeskTop%
SET &fn=屏幕捕获
SET &wid=0
set &ext=PNG
CALL @WIN1

_SUB WIN1,W449H220,截图,
    LABE LABE1,L10T42W60H20,延时(秒):,,
    EDIT Delay,L72T40W40H20,0,,
    SPIN SPIN1,L114T39W18H22,:1:99,,0x80,0x80
    LABE LABE2,L170T42W40H20,对象:,,
    EDIT wWid,L212T40W30H20,%wid%,,
    LABE LABE3,L280T42W60H20,保存类型:,,
    LIST lEXT,L342T40W60H20,PNG|BMP|JPG|GIF|TIFF,ENVI @wFN=%&capd%\%fn%.%lEXT%,%ext%
    LABE -VCENTER LABE4,L10T90W90H30,保存位置及文件,,
    EDIT -VCENTER -3D wFN,L105T90W300H30,%&capd%\%fn%.%ext%,NAME fn=%wFN%,
    ITEM ITEM2,L410T89W21H30,>>,OnBrow,
    ITEM ITEM1,L191T141W60H30,抓图, OnDo,
_END

_SUB OnBrow
    BROW &&capdir,*%capd%,选择一个文件夹
    FIND $%capdir%=, EXIT
    TEAM ENVI &capd=%capdir%|ENVI @wFN=%&capd%\%fn%.%ext%
_END

_SUB OnDo
    SET &wid=%wWid%
    SET &afn=%wFN%
    FIND $%afn%=, EXIT
    ENVI @this.visable=0
    CALC &&ms=%Delay%
    CALC &ms=%&ms% * 1000#0
    IFEX $%ms%<0, SET ms=0
    CALC #&ms=%&ms% + 10
    WAIT %&ms%
    SCRN -cap %afn%,%wid%
    WAIT 10
    ENVI @this.visable=1
_END
回复

使用道具 举报

45#
 楼主| 发表于 昨天 21:38 | 只看该作者
本帖最后由 静庵 于 2026-2-27 21:47 编辑
2012qnmd 发表于 2026-2-27 21:27
截图-全屏.wcs
SCRN  -cap  fulllscreen.BMP,0

受教了,高手在潜水。

截图键+mspaint.wcs
WAIT 100
SEND VK_SNAPSHOT  //#44
WAIT 100
EXEC --max mspaint.exe
TEAM WAIT 3000 | SEND #17_,#86_,#86^,#17^  //Ctrl-V

  截全屏,复制到画图编辑,而后保存。
回复

使用道具 举报

46#
 楼主| 发表于 昨天 21:50 | 只看该作者
本帖最后由 静庵 于 2026-2-27 22:14 编辑
2012qnmd 发表于 2026-2-27 21:25
截图键+mspaint.wcs
WAIT 100
SEND VK_SNAPSHOT  //#44

请教:这段代码可不可以改为打开画图的窗口不全屏,在画图中打开适应画图的窗口
回复

使用道具 举报

47#
发表于 昨天 21:53 | 只看该作者
静庵 发表于 2026-2-27 21:11
深奥了。
   ENVI path=%Desktop%
   SCRN -cap %path%\截屏_%i%.jpg, 1

看一下帮助文件,HOTK 只能在配置文件里才有效。
回复

使用道具 举报

48#
 楼主| 发表于 昨天 22:23 | 只看该作者
2012qnmd 老师提供的几个方案都实用,创建一个界面。
而 截图键+mspaint.wcs
    WAIT 100
    SEND VK_SNAPSHOT  //#44
    WAIT 100
    EXEC --max mspaint.exe
    TEAM WAIT 3000 | SEND #17_,#86_,#86^,#17^  //Ctrl-V
这一段代码更实用,直接截屏到画图,编辑保存,只是全屏显示吓人了,去掉 --max,画图窗口
可以了,而打开的图像太大了,需要给它缩小再编辑。可不可以改一下?

5大老师的方案简洁明了,直接截屏保持在桌面,适合快速截屏。

多谢各位老师、大神
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-2-28 03:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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