Maison >développement back-end >C++ >Comment puis-je intégrer des applications externes dans des panneaux C# ?
Intégration d'applications dans des panneaux C#
L'intégration d'applications externes dans des panneaux personnalisés d'un programme C# permet une intégration transparente de plusieurs applications au sein d'un seul utilisateur interface. Au lieu de déclencher des applications en externe, cette technique offre une expérience utilisateur plus cohérente et plus pratique.
Solution : Utilisation de l'API Win32
L'API Win32 fournit une solution pour l'intégration d'applications externes. applications en manipulant les poignées de fenêtre. Les étapes clés consistent à :
Exemple de code
Le code suivant montre comment intégrer notepad.exe dans un panneau 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); } }
Approche alternative
Au lieu d'utiliser Thread.Sleep(), le code peut utiliser WaitForInputIdle pour déterminer quand la fenêtre de l'application est entièrement chargée :
Process p = Process.Start("notepad.exe"); p.WaitForInputIdle(); SetParent(p.MainWindowHandle, panel1.Handle);
Ressources supplémentaires
Pour un guide plus complet sur l'intégration d'applications externes, reportez-vous à l'article Code Project : [Hébergement d'applications EXE dans un WinForm projet](https://www.codeproject.com/Articles/398354/Hosting-EXE-Applications-in-a-WinForm-project).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!