C# パネル内へのアプリケーションの埋め込み
C# プログラムのカスタム パネル内に外部アプリケーションを埋め込むと、単一ユーザー内で複数のアプリケーションをシームレスに統合できます。インタフェース。この手法は、アプリケーションを外部からトリガーするのではなく、より一貫性のある便利なユーザー エクスペリエンスを提供します。
解決策: Win32 API の利用
Win32 API は、外部を埋め込むためのソリューションを提供します。ウィンドウハンドルを操作してアプリケーションを操作します。主な手順には次のものが含まれます。
コード例
次のコードは、notepad.exe を C# パネル内に埋め込む方法を示しています。
using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Windows.Forms; namespace EmbeddedApplication { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Process p = Process.Start("notepad.exe"); Thread.Sleep(500); // Allow the process to open its window SetParent(p.MainWindowHandle, panel1.Handle); } [DllImport("user32.dll")] static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); } }
代替アプローチ
を使用する代わりにThread.Sleep() の場合、コードは WaitForInputIdle を使用して、アプリケーションのウィンドウがいつ完全に読み込まれるかを判断できます。
Process p = Process.Start("notepad.exe"); p.WaitForInputIdle(); SetParent(p.MainWindowHandle, panel1.Handle);
追加リソース
詳細については、外部アプリケーションを埋め込む場合は、コード プロジェクトの記事「WinForm での EXE アプリケーションのホスト」を参照してください。プロジェクト](https://www.codeproject.com/Articles/398354/Hosting-EXE-Applications-in-a-WinForm-project).
以上がC# パネル内に外部アプリケーションを埋め込むにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。