Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

OUVRIR UNE APPLI EN .EXE DANS UNE FORM EN VB6


Information sur la source

Catégorie :Formulaire Classé sous : parent, application, form, conteneur Niveau : Débutant Date de création : 30/06/2006 Vu / téléchargé: 7 710 / 1 186

Note :
7,22 / 10 - par 9 personnes
7,22 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Bonjour,

J'avais proposé ce code comme solution dans le forum.

Il est destiné à tous ceux qui veullent ouvrir une appli en .exe dans une Form en vb6

Si c'est possible, proposer un code en VB2005.

 

Source

  • 'Dans un module :
  • Public Const GW_HWNDNEXT = 2
  • Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, _
  • ByVal hWndNewParent As Long) As Long
  • Public Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long
  • Public Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, _
  • ByVal wCmd As Long) As Long
  • Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
  • (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  • Public Declare Function GetWindowThreadProcessId Lib "user32" _
  • (ByVal hWnd As Long, lpdwprocessid As Long) As Long
  • Function ProcIDFromWnd(ByVal hWnd As Long) As Long
  • Dim idProc As Long
  • GetWindowThreadProcessId hWnd, idProc
  • ProcIDFromWnd = idProc
  • End Function
  • Function GetWinHandle(hInstance As Long) As Long
  • Dim tempHwnd As Long
  • tempHwnd = FindWindow(vbNullString, vbNullString)
  • Do Until tempHwnd = 0
  • If GetParent(tempHwnd) = 0 Then
  • If hInstance = ProcIDFromWnd(tempHwnd) Then
  • GetWinHandle = tempHwnd
  • Exit Do
  • End If
  • End If
  • tempHwnd = GetWindow(tempHwnd, GW_HWNDNEXT)
  • Loop
  • End Function
  • 'Dans la fenêtre mère :
  • Private Sub MDIForm_Load()
  • Dim hInst As Long, hWndApp As Long
  • hInst = Shell("notepad.exe")
  • hWndApp = GetWinHandle(hInst)
  • SetParent hWndApp, Me.hWnd
  • End Sub
  • 'Bon courage et bonne chance
'Dans un module :

Public Const GW_HWNDNEXT = 2
Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, _
                        ByVal hWndNewParent As Long) As Long
Public Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long
Public Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, _
  ByVal wCmd As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowThreadProcessId Lib "user32" _
  (ByVal hWnd As Long, lpdwprocessid As Long) As Long
Function ProcIDFromWnd(ByVal hWnd As Long) As Long
   Dim idProc As Long
   GetWindowThreadProcessId hWnd, idProc
   ProcIDFromWnd = idProc
End Function
Function GetWinHandle(hInstance As Long) As Long
   Dim tempHwnd As Long
   tempHwnd = FindWindow(vbNullString, vbNullString)
   Do Until tempHwnd = 0
      If GetParent(tempHwnd) = 0 Then
         If hInstance = ProcIDFromWnd(tempHwnd) Then
            GetWinHandle = tempHwnd
            Exit Do
         End If
      End If
      tempHwnd = GetWindow(tempHwnd, GW_HWNDNEXT)
   Loop
End Function


'Dans la fenêtre mère :

Private Sub MDIForm_Load()
    Dim hInst As Long, hWndApp As Long
    hInst = Shell("notepad.exe")
    hWndApp = GetWinHandle(hInst)
    SetParent hWndApp, Me.hWnd
End Sub


'Bon courage et bonne chance

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de PCPT le 30/06/2006 17:00:41 administrateur CS

salut,
tu pourrais au minimum vérifier que le handle est bien trouvé...
également placer la fenêtre de l'exe à des position précises genre top0 left0....
++

signaler à un administrateur
Commentaire de adamo901 le 30/06/2006 17:33:54

hmmm AU MINIMUM!!!!
ça ne fonctionne pas chez toi ou quoi??

signaler à un administrateur
Commentaire de Renfield le 30/06/2006 18:20:06 administrateur CS

joli exemple d'utilisation des API

PCPT a raison : la position de la fenetre, ce serait un plus non négligeable.
si on ne maximise pas la fenetre MDI, on a bien peu de chance de voir Notepad...


signaler à un administrateur
Commentaire de niokyniak le 29/08/2006 17:21:42

Merci... C est ce que je Voulo...

signaler à un administrateur
Commentaire de PavICF le 14/04/2007 16:06:51

Pour faire la même chose en C#, voir un peu plus:

http://www.codeproject.com/cs/miscctrl/AppControl.asp

Bon, c'est en anglais mais je pense que c'est pas vraiment un problème

à+!

signaler à un administrateur
Commentaire de spoty le 13/07/2007 12:16:07

Bonjour
Ton code m'a bien intéressé ,je n'y connais pas grand chose à part le Basic-Extended TexaxInstrument des année 198x, quickbasic des années 199x, un peu de VB6 et VBA.
Histoire d'aider un de mes fils, je me mets au VB2005 et pour commencer j'ai refait ton programme en VB2005 avec des petits plus.
Etant nouvel inscrit , il faut que je regarde comment ajouter la source ici.
A+

signaler à un administrateur
Commentaire de spoty le 15/07/2007 23:10:13

bonsoir
C"est bon ma transcription avec des petits plus est sur le site.
http://www.vbfrance.com/codes/OUVRIR-APPLI-EXE-DANS-FORM-VB2005_43443.aspx
A+

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

URGENT MERCI : Changer le parent d'un controle [ par marc ] Je souhaite faire une form principale avec une arborescence d'un coté et des controles de l'autre. Chaque fois que je clique sur un noeud, je veux aff Un conteneur de forms [ par Bagbones ] bonjour,ayant atteint le nombre maximal d'objet pour ma form, je suis bien ennuyé, alors est-ce que je peus recréer une form, et l'inclure dans la pag Fermeture de form vbmodal ??? [ par mamat ] Qu'est ce qu'un form vbmodal ??Raison de la question:Je lance un programme activeX depuis une application mais à travers une macro (lancement de la cl Chargement de l'application [ par RaZoR ] Je voudrais savoir si il est possible de créer une form de chargement qui se mette "devant" la form principale et qui attent que cette derniere est fi Windows et VB [ par RC ] Bonsoir,Débutant en VB.Je cherche la commande qui me permette de bloquer mon application en premier plan de Windows et que ainsi l'utilisateur ne puis Ouvrir une autre application dans une fenetre vb !! [ par mattheus ] Hello !!Je souhaiterais ouvrir une autre application *.exe dans une form .Je sais comment l'ouvrir avec la commande SHELLmais je sais pas l'integrer d Fermeture d'une MDI_Form [ par Charlie ] Allo...Je veux, lors de l'ouverture de mon application vérifier une condition. Si celle-ci est fausse, je veux que l'application se ferme. Cette condi Une form affichée quoi qu'il arrive [ par bcip ] Je souhaite que, lorsque mon application tourne, l'une de mes form s'affiche au-dessus de TOUTES les applications qui sont ou vont être lançées. C'est Faire une application sans fenêtre (form) [ par TheBestofComputer ] Je voudrais savoir si c'est possible de crée une application sans fenetre et si c'est possible d'y mettre un controle Winsock.Merci


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.