我对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)
获取该表单。因此,我无法设置此记事本的新位置和大小。
关于如何操纵窗口的任何想法呢?提前谢谢!
答案 0 :(得分:4)
记事本是Win32应用程序,而不是.NET表单。这就是为什么你不能从中获得Control
- 它不是一个控制!
您可以使用窗口句柄将其传递给可以操作Win32窗口的Win32函数。有一大堆它们,例如SetWindowPos
来设置窗口位置(并在C#中使用它时查看this SO question)。
在Window functions on MSDN上查看更多参考资料,并使用PInvoke.net作为从C#调用这些Win32方法的参考。