-1

C#を使用して、ある種のフロント エンドを作成しようとしています。このフロント エンドは、すべてテキスト ファイルであるいくつかのエンジン ファイルを操作します。テキスト部分はうまくいっていますが、それが可能かどうかはわかりませんが、別のことを試しています。

フロントエンドでエンジンの .exe ファイルを実行したいのですが、これは新しいウィンドウではなく、現在のウィンドウに表示されます。これを行う方法はありますか?

StartInfo."something"を試してみましたが、 CMDだけのもののようです。または、成功していません (毎回ウィンドウがポップアップします)。

誰かがこれで私を助けてくれたらうれしいです。アドバイスありがとう。

4

1 に答える 1

0

新しいプログラム ウィンドウを現在のウィンドウに埋め込みたいと思いますか?

そのプログラムを ActiveX コントロールとして書き換えることで実現できます。または、engine.exe で win api SetParent を使用して、メイン ウィンドウ フレームを親として設定することもできます (親ウィンドウ ハンドルを engine.exe に渡す方法を見つける必要があります):</p>

SetParent(hWnd, hWndParent);

SetWindowLong(hWnd, GWL_STYLE, WS_CHILD);

SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOZORDER);

// or use MoveWindow

Windows ハンドルを取得する C# コード:

Window window = Window.GetWindow(this);
var winh = new WindowInteropHelper(window);
IntPtr hWnd = winh.Handle;
于 2013-05-29T23:23:16.190 に答える