4

我对 C# 很陌生,并且面临一个问题。我希望通过以下方式操作动态创建的窗口(调整大小、移动):

Process app = new Process();
app.StartInfo.FileName = "notepad.exe";   //just an example,
app.Start();                              //it will be more than just notepad

我知道我可以通过 获取句柄,app.MainWindowHandle但无法通过 获取表格Control.FromHandle(app.MainWindowHandle)。因此,我无法设置此记事本的新位置或大小。

关于如何操作窗口的任何想法?提前致谢!

4

1 回答 1

4

记事本是 Win32 应用程序,而不是 .NET 表单。这就是为什么你不能从中得到一个Control- 它不是一个控制!

您可以对窗口句柄做的就是将它传递给可以操作 Win32 窗口的 Win32 函数。它们有很多,例如SetWindowPos设置窗口位置(并从 C# 中查看有关使用它的这个 SO 问题)。

请参阅MSDN 上有关 Window 函数的更多参考,并使用PInvoke.net作为从 C# 调用这些 Win32 方法的参考。

于 2012-11-19T12:55:56.050 回答