我试图获取附加到javaw.exe进程的某个窗口的大小和位置。
可悲的是,GetWindowRect会抛出一个错误:" NullReferenceException" - 我已经检查过,其中没有一个参数== null。
这是一段代码
调用样本:
NB.Attach( Process.GetProcessesByName("javaw")[0] );
运行静态函数来附加进程:
public static void Attach( Process process )
{
FocusProcess = process;
FocusWindow = FindWindow(null, process.MainWindowTitle);
}
public static int[] GetWindowPosition()
{
WindowRect rect = new WindowRect();
Console.WriteLine(FocusProcess == null);
Console.WriteLine(FocusProcess.MainWindowHandle == null);
Console.WriteLine(rect==null);
GetWindowRect(FocusProcess.MainWindowHandle, out rect);
if ( rect.Top != 0 )
{
return new int[] { rect.Left, rect.Top };
}
return new int[] { 0, 0 };
}
使用示例:
upload_to
在此先感谢,如果涉及到本机功能的使用,我完全缺乏经验。
答案 0 :(得分:2)
您将结构声明为C#类。那已经是一种参考类型了。因此,当你将它作为一个out param传递时,你现在有了一个双指针。任