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

时间:2016-08-17 07:57:36

标签: actionscript-3 flex flex4 screenshot

我想在我的第二台显示器中捕获屏幕,目前我正在使用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命令中运行的任何其他应用程序从辅助监视器获取屏幕截图,请帮助我。

1 个答案:

答案 0 :(得分:1)

关于 BoxCutter 文档......

  

用法:boxcutter [OPTIONS] [OUTPUT_FILENAME]

     

OPTIONS
  -c,= coords 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 是w = 1280&amp; h = 800,屏幕2 是w = 1024&amp; H = 768。

抓住示例

  • 监视器1 仅使用:boxcutter -c 0,0,1280,800 testgrab.png

  • 监视器2 仅使用:boxcutter -c 1280,0,2304,768 testgrab.png

  • 两个监视器1&amp; 2 一起使用:boxcutter -c 0,0,2304,800 testgrab.png

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

在您的代码中尝试此操作

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

其中: myWidth &amp; myHeight =所需宽度&amp;抓地高度。

PS:请检查此 Article ,因为它可能会帮助您设置多台显示器......