apache-flex 如何在ActionScript 3中从多个监视器捕获屏幕?

mznpcxlj  于 2022-05-01  发布在  Apache
关注(0)|答案(1)|浏览(126)

我想在我的第二个监视器上捕获屏幕,目前我正在使用CmdCapture.exe应用程序在特定的时间间隔内进行屏幕截图,但它只从主监视器上捕获屏幕,所以我不知道如何使用CmdCapture.exe从辅助监视器上捕获屏幕。
我用下面的代码来截图:

var cmdScreenCaputeLocation:File = File.applicationDirectory.resolvePath("assets\\CmdCapture.exe");
var nativeProcessStartInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartInfo.executable = cmdScreenCaputeLocation;

var args: Vector.<String> = new Vector.<String>();
var uid:String = "tempImg"+imgCounter+"";
args.push("/f", (uid+".jpg"),"/d",""+screencaptureDir+"", "/q 70");
nativeProcessStartInfo.arguments = args;
var nativeProcess:NativeProcess = new NativeProcess();
nativeProcess.addEventListener(NativeProcessExitEvent.EXIT,screenCaptureNativeProcessComplated);
nativeProcess.addEventListener(ProgressEvent.STANDARD_ERROR_DATA,screenCapturOonErrorS);
nativeProcess.addEventListener(IOErrorEvent.STANDARD_INPUT_IO_ERROR,screenCaptureOnError);
nativeProcess.start(nativeProcessStartInfo);
imgCounter++;

因此,任何人都有一个想法,如何采取从二级监视器使用CmdCapture.exe或使用任何其他应用程序,可以在actionscript nativeprocess命令运行的屏幕截图,请帮助我。

mpbci0fu

mpbci0fu1#

关于**BoxCutter**文档...
用法:boxcutter [OPTIONS] [OUTPUT_FILENAME]
选项
-c,=坐标X1、Y1、X2、Y2捕获矩形(X1,Y1)-(X2,Y2)。
-f,=全屏捕捉全屏。
-h,=帮助显示帮助消息。

用法boxcutter -c -AA,BB,CC,DD testgrab.png

其中数字为:
AA是沿着X轴(左/右)的起始原点
BB是沿着Y轴的起始原点(上/下)
CC是沿着X轴(左/右)的抓取宽度
DD是沿着Y轴的抓取高度(上/下)
例如,让我们测试:屏幕1为宽=1280,高=800,屏幕2为宽=1024,高=768。

抓取示例

  • 对于监视器1,仅用途:boxcutter -c 0,0,1280,800 testgrab.png
  • 对于监视器2,仅用途:boxcutter -c 1280,0,2304,768 testgrab.png
  • 对于两台显示器12,一起用途:boxcutter -c 0,0,2304,800 testgrab.png

请注意,屏幕2屏幕1的宽度结束后开始。因此,要同时抓取两个屏幕,CC必须是屏幕1+屏幕2的总宽度。对于高度DD,必须使用最大高度(从这两个屏幕之一开始),以避免任何不必要的裁剪。
在代码中尝试此操作

args.push("-c");
args.push("0", "0", "myWidth", "myHeight");
args.push("testgrab.png");

其中:myWidth&myHeight=抓取区域所需的宽度和高度。
PS:检查这个**Article**,因为它可能会帮助你设置多个显示器...

相关问题