Ouvrir une application dans un form

sachie Messages postés 93 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 16 septembre 2010 - 15 mai 2008 à 14:26
cs_niky Messages postés 168 Date d'inscription jeudi 28 juin 2001 Statut Membre Dernière intervention 18 octobre 2008 - 17 mai 2008 à 22:49
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

leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
15 mai 2008 à 14:30
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?
0
sachie Messages postés 93 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 16 septembre 2010 2
15 mai 2008 à 14:46
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#!
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
16 mai 2008 à 10:56
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
0
cs_niky Messages postés 168 Date d'inscription jeudi 28 juin 2001 Statut Membre Dernière intervention 18 octobre 2008 7
17 mai 2008 à 22:49
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#.
0
Rejoignez-nous