CSkin博客

标题: 双屏幕中屏幕截取问题 [打印本页]

作者: skypurple    时间: 2015-1-22 09:17
标题: 双屏幕中屏幕截取问题
    使用了一个扩展屏幕,论坛的屏幕截取会出现这样的问题,白色方块XX,抛出异常。异常信息为System.ArgumentOutOfRangeException: Parameter must be positive and < Width.Parameter name: x    求解......


作者: 乔克斯    时间: 2015-1-22 10:41
- -非扩展屏正常吗?。。应该截图控件没兼容扩展屏。
作者: skypurple    时间: 2015-1-22 11:26
乔克斯 发表于 2015-1-22 10:41
- -非扩展屏正常吗?。。应该截图控件没兼容扩展屏。

非扩展是正常的。。。。。看异常好像是坐标的问题。
作者: 乔克斯    时间: 2015-1-22 14:42
skypurple 发表于 2015-1-22 11:26
非扩展是正常的。。。。。看异常好像是坐标的问题。

是的。。扩展屏坐标超出了。导致出错。QQ截图运行正常吗?

作者: skypurple    时间: 2015-1-22 14:54
乔克斯 发表于 2015-1-22 14:42
是的。。扩展屏坐标超出了。导致出错。QQ截图运行正常吗?

QQ截图没有问题的,是当鼠标移动到当前屏,就截取当前屏,另外一个屏遮住。
作者: webskywang    时间: 2015-1-27 18:06
可以选中另外一个屏幕。
作者: skypurple    时间: 2015-1-28 10:00
经过修改代码后,问题已解决,和QQ截图一样。。。
作者: 乔克斯    时间: 2015-1-28 22:36
skypurple 发表于 2015-1-28 10:00
经过修改代码后,问题已解决,和QQ截图一样。。。

修改了哪里的代码?
作者: skypurple    时间: 2015-5-12 15:26
乔克斯 发表于 2015-1-28 22:36
修改了哪里的代码?

在FrmCapture中把
this.Size = new Size(Screen.PrimaryScreen.Bounds.Width,
                Screen.PrimaryScreen.Bounds.Height);   
替换成:
            var width = 0;
            var height = 0;
            foreach (var screen in Screen.AllScreens)
            {
                width += screen.Bounds.Width;
                height += screen.Bounds.Height;
            }
            this.Size = new Size(width,
             height);
作者: 乔克斯    时间: 2015-5-12 16:02
skypurple 发表于 2015-5-12 15:26
在FrmCapture中把
this.Size = new Size(Screen.PrimaryScreen.Bounds.Width,
                Screen.P ...

[C#] 纯文本查看 复制代码
this.Size = new Size(Screen.GetWorkingArea(this).Width,
                Screen.GetWorkingArea(this).Height);


你试试改成这样行不行
作者: skypurple    时间: 2015-5-12 16:44
乔克斯 发表于 2015-5-12 16:02
[mw_shl_code=csharp,true]this.Size = new Size(Screen.GetWorkingArea(this).Width,
                S ...

虽然不会报错了,但是扩展屏幕没有反应,并且没有包含任务栏
作者: 乔克斯    时间: 2015-5-12 20:35
skypurple 发表于 2015-5-12 16:44
虽然不会报错了,但是扩展屏幕没有反应,并且没有包含任务栏

好吧,回头我再改改。




欢迎光临 CSkin博客 (http://bbs.cskin.net/) Powered by Discuz! X3.2