2012-11-19 52 views
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)獲得的形式。因此,我無法設置此記事本的新位置和大小。

關於如何操作窗口的任何想法呢?提前致謝!

+1

請注意,您並未創建該窗口。記事本創建它。你真正在做的是操縱一個其他人創建它的窗口。這通常是皺眉。 (就像穿別人的衣服。) –

回答

4

記事本是一個Win32應用程序,而不是一個.NET窗體。這就是爲什麼你不能從它得到Control - 這不是一個控制!

你可以用窗口句柄做什麼,將它傳遞給可以操作Win32窗口的Win32函數。其中有一大堆如SetWindowPos來設置窗口位置(並參見從C#使用它的this SO question)。

查看更多關於Window functions on MSDN的參考資料,並使用PInvoke.net作爲從C#調用這些Win32方法的參考。