无忧启动论坛

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

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

[复制链接]
跳转到指定楼层
1#
发表于 前天 21:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 静庵 于 2026-2-27 21:02 编辑

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%\Snapshot_%i%.jpg, 1
上面这段代码,可以实现 pecmd 加载截屏到桌面(.ini或 .wcs文件),但只能实现截屏1个,不能连续截屏,
请高手大神修改添加代码,实现连续截屏,文件名依次加1,如截屏_1.jpg,截屏_2.jpg,截屏_3.jpg,......
坛中有代码,但只能在个别PE中可用,有些PE中不能用,比如利用 nircmd,snashop,以及Windows自带的
截图工具,有些PE中或缺少某个文件等,就不能运行。利用纯 pecmd 代码,应该可以避免文件缺失的问题,
PECMD.EXE,每个PE都有。
==================================================================
PE下实现截屏到桌面方案总结
------------------------------------
方案1:527104427 方案(ppll2030 也予提供),pecmd 代码,保存为 .ini 或 .wcs 格式,本人
    测试几个不同版本的10PE、11PE均可使用。
    命令结果:截取全屏 jpg 文件。每运行一次,都会保存在桌面,文件名顺次1,2,3 ....。

set dir=%desktop%
team~ set count=1~ loop #1=1, ifex %dir%\%count%.jpg, calc count=%count% + 1! exit
scrn -cap %dir%\%count%.jpg,1

http://bbs.c3.wuyou.net/forum.php?mod=viewthread&tid=446608
----------------------------------
方案2:本人在 pecmd 社区找到的原始 pecmd 代码,保存为 .ini 或 .wcs 格式,本人测试几个
    不同版本的10PE、11PE均可使用。本人做了简单修改。
    命令结果:截取全屏 jpg 文件,就一个文件保存在桌面,再次运行会覆盖前一次文件。

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
----------------------------------------------
方案3:苹果有毒提供的代码,批处理格式,本人测试几个不同版本的10PE、11PE均可使用。
    命令结果:截取全屏 jpg 文件,就一个文件保存在桌面,再次运行会覆盖前一次文件。
    也许是本人无知,该代码输出文件是一个黑框截图,不会用。

@echo off
setlocal enabledelayedexpansion
set "basePath=%Desktop%"
set "counter=1"
:checkFile
if exist "%basePath%\!counter!.jpg" (
    set /a counter+=1
    goto checkFile
)
set "finalPath=%basePath%\!counter!.jpg"
PECMD TEAM DATE *space %date%^|SCRN -cap "!finalPath!",0

输出结果:

-----------------------------------------------------------------------
方案4:baby1277提供的代码,pecmd 格式,本人测试只有 yigeren 11PE可使用。本人
    在论坛下载的其它几个PE未能通过。需要文件 nircmd.exe
    截取全屏 jpg 文件。每运行一次,都会保存在桌面,文件名顺次1,2,3 ....。

也分享下我的收藏,可以添加右键菜单。
---------------------------------------截图到桌面------------------------------------------------
for /f "eol=H tokens=2 delims=SZ" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do cd /d %%i
for /l %%i in (1 1 9) do if not exist 截屏_%%i.bmp set tu=截屏_%%i.bmp&goto tu
:tu
nircmd cmdwait 500 savescreenshot  "~$folder.desktop$\%tu%"

该代码 jiavip 修改为:
-------------------------------------截图到桌面------------------------------------------------
for /f "eol=H tokens=2 delims=SZ" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do cd /d %%i
set i=1
:tu
if exist 截屏_%i%.bmp set/a i+=1&goto tu
set tu=截屏_%i%.bmp
nircmd cmdwait 500 savescreenshot  "~$folder.desktop$\%tu%"

http://bbs.c3.wuyou.net/forum.php?mod=viewthread&tid=446608
---------------------------------------------------------------------
还有 martin313 老师提供的几个方案,本人小白不会用。
有兴趣的可以看看:http://bbs.c3.wuyou.net/forum.ph ... d&tid=449921&extra=


2#
发表于 前天 21:36 | 只看该作者
可以把PECMD打包进程序,然后编个可设置执行菜单。认坛有高手,期待搞搞。
回复

使用道具 举报

3#
发表于 前天 21:47 | 只看该作者

ENVI path=%Desktop%
ENVI i=1
ENVI &Running=0  // 0=停止状态, 1=运行状态

// 注册热键 F11 开始截屏(同时重置计数器)
HOTK F11, TEAM ENVI &Running=1| ENVI i=1| MESS 开始连续截屏,从第1张开始... @提示 #OK *2000

// 注册热键 F12 停止截屏
HOTK F12, TEAM ENVI &Running=0| MESS 截屏已停止,共截取了 %i% 张图片。 @提示 #OK *3000

LOOP #1 = 1,
{
    // 检查是否处于运行状态
    IFEX #%&Running% = 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
        CALC i=%i% + 1
        
        // 每次截屏后等待一定时间
        WAIT 2000
    }
   
    // 如果处于停止状态,短暂等待后继续循环
    WAIT 100
}

点评

神啊,不过不是要自动连续截屏,要每运行一次截一张,文件名序号连续。  详情 回复 发表于 前天 21:51
回复

使用道具 举报

4#
 楼主| 发表于 前天 21:51 | 只看该作者
martin313 发表于 2026-2-26 21:47
ENVI path=%Desktop%
ENVI i=1
ENVI &Running=0  // 0=停止状态, 1=运行状态

神啊,不过不是要自动连续截屏,要每运行一次截一张,文件名序号连续。

点评

ENVI path=%Desktop% ENVI i=1 // 读取上次保存的序号(如果存在序号记录文件) IFEX %path%\截屏计数.ini, LOAD %path%\截屏计数.ini // 注册热键 F11 执行截屏 HOTK F11, CALL 截屏 // 子过程:执行  详情 回复 发表于 前天 22:23
回复

使用道具 举报

5#
发表于 前天 22:01 | 只看该作者
静庵 发表于 2026-2-26 21:51
神啊,不过不是要自动连续截屏,要每运行一次截一张,文件名序号连续。

弄好后能分享一下吗;谢谢;
回复

使用道具 举报

6#
发表于 前天 22:04 | 只看该作者
运行一次,截图一次,自动以1、2、3数字依次命名
5大的原版命令

  1. set dir=%desktop%
  2. team~ set count=1~ loop #1=1, ifex %dir%\%count%.jpg, calc count=%count% + 1! exit
  3. scrn -cap %dir%\%count%.jpg
复制代码

点评

好像不行啊,加载没有反应  详情 回复 发表于 前天 22:19
回复

使用道具 举报

7#
 楼主| 发表于 前天 22:19 | 只看该作者
ppll2030 发表于 2026-2-26 22:04
运行一次,截图一次,自动以1、2、3数字依次命名
5大的原版命令

好像不行啊,加载没有反应

点评

保存为wcs。运行就可以啦  详情 回复 发表于 前天 22:23
回复

使用道具 举报

8#
发表于 前天 22:23 | 只看该作者
静庵 发表于 2026-2-26 21:51
神啊,不过不是要自动连续截屏,要每运行一次截一张,文件名序号连续。


ENVI path=%Desktop%
ENVI i=1

// 读取上次保存的序号(如果存在序号记录文件)
IFEX %path%\截屏计数.ini, LOAD %path%\截屏计数.ini

// 注册热键 F11 执行截屏
HOTK F11, CALL 截屏

// 子过程:执行截屏操作
_SUB 截屏
    // 执行原有的截屏操作
    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
   
    // 显示截屏信息
    MESS 已截取第 %i% 张图片:截屏_%i%.jpg @截屏完成 #OK *2000
   
    // 计数器加1
    CALC i=%i% + 1
   
    // 保存当前序号到文件(便于下次运行脚本时继续计数)
    WRIT %path%\截屏计数.ini, $+0, ENVI i=%i%
_END

// 保持脚本运行,等待热键触发
WAIT - -1

点评

没有反应  详情 回复 发表于 前天 22:33
回复

使用道具 举报

9#
发表于 前天 22:23 | 只看该作者
本帖最后由 ppll2030 于 2026-2-26 22:28 编辑
静庵 发表于 2026-2-26 22:19
好像不行啊,加载没有反应

保存为wcs。运行就可以啦

点评

我也不行,pe里,顺至上面那个也不行。这是什么原因?难道pecmd有版本区分?你用的是那版的。  详情 回复 发表于 前天 22:54
可以了,我复制的时候少了一个字符,现在可以了,并换了一个PE 也没有问题,多谢  详情 回复 发表于 前天 22:51
我现在就在pe下回帖,保存为wcs或ini都没有反应的  详情 回复 发表于 前天 22:39
回复

使用道具 举报

10#
发表于 前天 22:27 | 只看该作者
看看
回复

使用道具 举报

11#
发表于 前天 22:30 | 只看该作者
本帖最后由 martin313 于 2026-2-26 22:33 编辑

或者按照6楼的:

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
======================================
以上均来自 deepseek

点评

这个加载仍然没有反应  详情 回复 发表于 前天 22:53
回复

使用道具 举报

12#
 楼主| 发表于 前天 22:33 | 只看该作者
martin313 发表于 2026-2-26 22:23
ENVI path=%Desktop%
ENVI i=1

没有反应
回复

使用道具 举报

13#
 楼主| 发表于 前天 22:39 | 只看该作者
ppll2030 发表于 2026-2-26 22:23
保存为wcs。运行就可以啦

我现在就在pe下回帖,保存为wcs或ini都没有反应的
回复

使用道具 举报

14#
 楼主| 发表于 前天 22:51 | 只看该作者
ppll2030 发表于 2026-2-26 22:23
保存为wcs。运行就可以啦

可以了,我复制的时候少了一个字符,现在可以了,并换了一个PE 也没有问题,多谢
回复

使用道具 举报

15#
 楼主| 发表于 前天 22:53 | 只看该作者
martin313 发表于 2026-2-26 22:30
或者按照6楼的:

set dir=%desktop%

这个加载仍然没有反应
回复

使用道具 举报

16#
发表于 前天 22:54 | 只看该作者
ppll2030 发表于 2026-2-26 22:23
保存为wcs。运行就可以啦

我也不行,pe里,顺至上面那个也不行。这是什么原因?难道pecmd有版本区分?你用的是那版的。

点评

6#的我的可以的。  详情 回复 发表于 前天 22:59
回复

使用道具 举报

17#
 楼主| 发表于 前天 22:59 | 只看该作者
忧心的启 发表于 2026-2-26 22:54
我也不行,pe里,顺至上面那个也不行。这是什么原因?难道pecmd有版本区分?你用的是那版的。

6#的我的可以的。

点评

我测试了也没反应,说是尚未实现  详情 回复 发表于 前天 23:11
那明天再试了,晚了睡觉觉了。  详情 回复 发表于 前天 23:01
回复

使用道具 举报

18#
发表于 前天 23:01 | 只看该作者
静庵 发表于 2026-2-26 22:59
6#的我的可以的。

那明天再试了,晚了睡觉觉了。
回复

使用道具 举报

19#
发表于 前天 23:11 | 只看该作者
本帖最后由 martin313 于 2026-2-26 23:17 编辑
静庵 发表于 2026-2-26 22:59
6#的我的可以的。

我测试了也没反应,说是尚未实现;应该是pecmd的版本不支持的原因。我的PE里内置的Imagine,也支持屏幕截屏
回复

使用道具 举报

20#
发表于 前天 23:32 | 只看该作者
何必呢,直接内置一个几百K的截图工具不香么,注册个快捷键即可...


二○二六年二月二十六日
回复

使用道具 举报

21#
发表于 前天 23:58 | 只看该作者
本帖最后由 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

点评

不知何故,我的PE中,注册热键也没有反应,与PE有关?  详情 回复 发表于 昨天 06:42
回复

使用道具 举报

22#
发表于 昨天 00:25 | 只看该作者
围观
回复

使用道具 举报

23#
发表于 昨天 00:56 | 只看该作者
我也在等楼下回帖
回复

使用道具 举报

24#
发表于 昨天 01:42 | 只看该作者
围观
回复

使用道具 举报

25#
 楼主| 发表于 昨天 06:42 | 只看该作者
martin313 发表于 2026-2-26 23:58
我的PE中,64位的,输入命令:"%ProgramFiles%\Imagine\Imagine64.exe" /capture

就可以调出截屏窗口

不知何故,我的PE中,注册热键也没有反应,与PE有关?

点评

判断版本,存在问题。建议用注册表法来判断,或者直接用一条命令,不要判断: HOTK #122,PECMD EXEC "%ProgramFiles%\Imagine\Imagine64.exe" /capture `F11 ScreenShot  详情 回复 发表于 昨天 06:54
回复

使用道具 举报

26#
发表于 昨天 06:54 | 只看该作者
静庵 发表于 2026-2-27 06:42
不知何故,我的PE中,注册热键也没有反应,与PE有关?

判断版本,存在问题。建议用注册表法来判断,或者直接用一条命令,不要判断:

HOTK #122,PECMD EXEC "%ProgramFiles%\Imagine\Imagine64.exe" /capture  `F11 ScreenShot

点评

感谢老师辛劳,我就是小白一个,什么都不懂的  详情 回复 发表于 昨天 07:18
回复

使用道具 举报

27#
 楼主| 发表于 昨天 07:18 | 只看该作者
martin313 发表于 2026-2-27 06:54
判断版本,存在问题。建议用注册表法来判断,或者直接用一条命令,不要判断:

HOTK #122,PECMD EXEC " ...

感谢老师辛劳,我就是小白一个,什么都不懂的
回复

使用道具 举报

28#
发表于 昨天 07:39 | 只看该作者
感谢分享
回复

使用道具 举报

29#
发表于 昨天 08:56 | 只看该作者
学习一下
回复

使用道具 举报

30#
发表于 昨天 09:05 | 只看该作者
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也许可以

点评

已经搞清楚了,是pecmd版本问题,之前用的是V201201.88.05.86 x64不行,换了V201201.88.05.94 X64就行了  详情 回复 发表于 昨天 09:29
我这也没反应,不懂是不是pecmd的问题。真奇怪啊。  详情 回复 发表于 昨天 09:14
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-2-28 00:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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