|
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大老师的方案简洁明了,直接截屏保持在桌面,适合快速截屏。 多谢各位老师、大神 |
静庵 发表于 2026-2-27 21:11 看一下帮助文件,HOTK 只能在配置文件里才有效。 |
本帖最后由 静庵 于 2026-2-27 22:14 编辑 2012qnmd 发表于 2026-2-27 21:25 请教:这段代码可不可以改为打开画图的窗口不全屏,在画图中打开适应画图的窗口 |
本帖最后由 静庵 于 2026-2-27 21:47 编辑 2012qnmd 发表于 2026-2-27 21:27 受教了,高手在潜水。 截图键+mspaint.wcs WAIT 100 SEND VK_SNAPSHOT //#44 WAIT 100 EXEC --max mspaint.exe TEAM WAIT 3000 | SEND #17_,#86_,#86^,#17^ //Ctrl-V 截全屏,复制到画图编辑,而后保存。 |
|
截图抓图界面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 |
|
截图抓图界面.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 |
|
截图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 |
| 这个很多年前,我和作者提过这个需求,作者加了截图参数,也给力几个现成的wcs |
本帖最后由 静庵 于 2026-2-27 21:19 编辑 527104427 发表于 2026-2-27 19:16 深奥了。 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 中加载没有反应呢 |
ENVI path=%Desktop% 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,没有任何意义。 |
| 感谢分享 |
| 来学习下 |
| 支持分享 |
martin313 发表于 2026-2-27 09:05 已经搞清楚了,是pecmd版本问题,之前用的是V201201.88.05.86 x64不行,换了V201201.88.05.94 X64就行了 |
| 感谢分享! |
martin313 发表于 2026-2-27 09:05 我这也没反应,不懂是不是pecmd的问题。真奇怪啊。 |
|
set dir=%desktop% team~ set count=1~ loop #1=1, ifex %dir%\%count%.jpg, calc count=%count% + 1! exit scrn -cap %dir%\%count%.jpg 这个方案,在我发布的PE中,好像不行。pecmd.exe版本不支持scrn命令,要换成最新版的pecmd.exe也许可以 |
| 学习一下 |
感谢分享![]() |
martin313 发表于 2026-2-27 06:54 感谢老师辛劳,我就是小白一个,什么都不懂的 |
静庵 发表于 2026-2-27 06:42 判断版本,存在问题。建议用注册表法来判断,或者直接用一条命令,不要判断: HOTK #122,PECMD EXEC "%ProgramFiles%\Imagine\Imagine64.exe" /capture `F11 ScreenShot |
martin313 发表于 2026-2-26 23:58 不知何故,我的PE中,注册热键也没有反应,与PE有关? |
| 围观 |
| 我也在等楼下回帖 |
| 围观 |
|
本帖最后由 martin313 于 2026-2-27 00:40 编辑 我的PE中,64位的,输入命令:"%ProgramFiles%\Imagine\Imagine64.exe" /capture 就可以调出截屏窗口 // 注册F11热键,根据系统架构自动选择Imagine版本 IFEX $%ProgramW6432%<>, { HOTK #122,PECMD EXEC "%ProgramFiles%\Imagine\Imagine64.exe" /capture `F11 ScreenShot }! { HOTK #122,PECMD EXEC "%ProgramFiles%\Imagine\Imagine.exe" /capture `F11 ScreenShot } // 注册F11热键,根据系统架构自动选择Imagine版本 REGI $HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE, ARCH IFEX $%ARCH%=AMD64, { ENVI IMG_PATH=%ProgramFiles%\Imagine\Imagine64.exe }! { ENVI IMG_PATH=%ProgramFiles%\Imagine\Imagine.exe } HOTK #122,PECMD EXEC "%IMG_PATH%" /capture `F11 ScreenShot |
|
何必呢,直接内置一个几百K的截图工具不香么,注册个快捷键即可... 二○二六年二月二十六日 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.