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

メモ帳は、.NET フォームではなく、Win32 アプリケーションです。そのため、そこから を取得することはできませんControl。これはコントロールではありません!

ウィンドウ ハンドルでできることは、Win32 ウィンドウを操作できる Win32 関数に渡すことです。SetWindowPosウィンドウの位置を設定するなど、それらのホスト全体があります( C#からの使用に関するこのSOの質問を参照してください)。

MSDN のウィンドウ関数に関するリファレンスを参照し、C# からこれらの Win32 メソッドを呼び出すためのリファレンスとしてPInvoke.netを使用してください。

于 2012-11-19T12:55:56.050 に答える