我拥有的代码是:

问题描述 投票:0回答:2
上遇到错误或一些绿色突出显示:

调用pinvoke函数的屏幕截图!这可能是因为托管PinVoke签名与非托管目标签名不符。检查PINVOKE签名的调用约定和参数是否与目标不受管理的签名匹配。

我如何修复此操作,以便可以获取另一个应用程序窗口的屏幕截图?

	

pinvoke.net

(很棒的参考)上,签名应为:

GetWindowRect

可能也可以做到这一点,这不需要您定义自定义
c# winforms screenshot visual-c#-express-2010
2个回答
1
投票
struct:

RECT

如果这不起作用,则可以基于thispage
来定义

public static extern bool GetWindowRect(IntPtr hwnd, out Rectangle lpRect);
struct,并使用:

RECT

pinvoke.net页面上的

public static extern bool GetWindowRect(IntPtr hwnd, out RECT lpRect);
显示了如何在
RECT

RECT
之间转换。 您的声明缺少“ OUT”,并且使用错误的矩形类型,应如下:

Rectangle

您称其为:

private static extern bool GetWindowRect(IntPtr hWnd, out RECT rect);
矩形还需要是Winapi矩形,而不是.NET类。有关其定义,请参见
here
。惯例是称其为矩形而不是矩形。


1
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.