Ouvrir une application dans un form

Signaler
Messages postés
93
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
16 septembre 2010
-
Messages postés
168
Date d'inscription
jeudi 28 juin 2001
Statut
Membre
Dernière intervention
18 octobre 2008
-
Bonjour j'ai beau chercher et je ne trouves bizarrement rien là dessus!

Je cherche à savoir s'il est possible d'ouvrir une application dans un form.

Un peu comme ouvrir une page web dans un webbrowser!

4 réponses

Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
18
ce que tu veux faire implique que ton process doit accéder a l'espace mémoire (protégé) d'un autre process. cest donc impossible. cependant, tu peux faire ca si l'application en question obéit au modèle activeX. dans ce cas il suffit de créer une instance de l'activeX dans ton formulaire, auquel cas tu reste dans ton process (et cest comme simplement appeler des fonctions d'une dll). A voir en fonction de l'application concernée. est ce une application custom qui peut devenir un activeX? est une application dont tu n'as pas le source? si cest le cas exporte-t-elle les bonnes méthodes?
Messages postés
93
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
16 septembre 2010
2
En fait je voudrais pouvoir y placer CorelDRAW, j'ai réussi à faire en sorte de modifier certains textes, mais pour une manipulation plus agréable je voudrais faire en sorte de placer coreldraw "dans" mon form pour éviter d'avoir deux fenêtres ,une pour corel et l'autre pour mon appli c#!
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
18
eh bien regarde si ton appli est disponible en tant qu'activeX. si oui, ce que tu veux faire est possible. si non, tu ne pourras pas faire ce que tu veux de la manière que tu décris
Messages postés
168
Date d'inscription
jeudi 28 juin 2001
Statut
Membre
Dernière intervention
18 octobre 2008
7
Il existe une méthode (certes peu recommandée) qui consiste à dévier l'utilisation standard de l'API SetParent.

Un peu de documentation sur cette API :
http://msdn.microsoft.com/en-us/library/ms633541(VS.85).aspx

Par défaut, lorsqu'on charge une appli, sa fenêtre a comme fenêtre parente le bureau Windows (qui possède le handle 0). Pour placer la fenêtre d'une appli dans un formulaire, il faut récupérer son handle. Il existe plusieurs API pour faire cela :
- GetWindow : http://msdn.microsoft.com/en-us/library/ms633515(VS.85).aspx
- FindWindow : http://msdn.microsoft.com/en-us/library/ms633515(VS.85).aspx
Une fois qu'on a obtenu le handle de la fenêtre, on peut la placer dans notre formulaire avec
SetParent(handleCorelDraw, form1.Handle);

Bien sûr, toutes ces API sont normalement destinées à être utilisées avec en C et nécessitent de passer par l'interop en C#.