我对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)
获得表格。因此,我无法设置此记事本的新位置或大小。
关于我如何操作窗口的任何想法?提前感谢!
事本是一个Win32应用程序,而不是.NET窗体。这就是为什么你不能从中获得Control
- 它不是一个控件!
您可以使用窗口句柄执行的操作是将其传递给可以操作 Win32 窗口的 Win32 函数。有一大堆,例如SetWindowPos
设置窗口位置(并查看有关从 C# 使用它的 SO 问题)。
有关 MSDN 上的窗口函数的更多参考,并使用 PInvoke.net 作为从 C# 调用这些 Win32 方法的参考。