ManuAntibes
Messages postés491Date d'inscriptionmardi 24 octobre 2000StatutMembreDernière intervention18 novembre 2021
-
29 juin 2006 à 10:41
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 2008
-
30 juin 2006 à 10:05
Salut
est il possible d'ouvrir une appli en .exe dans mon MDIForm.vb ???
j'ai ecrie ça mais s'est pas bon.
Dim FormServ
As
New Shell(
"C:\Program Files\FileZilla\FileZilla.exe")FormServ.MdiParent =
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 29 juin 2006 à 11:00
j'aime pas voir ce genre de code, où les chemins sont en dur :s
Tu semble confondre Form et Application.
en programmation non .Net, il te faudrait retrouver le hWnd de la fenetre de FilleZilla, et utiliser l'API SetParent, pour 'souder' FileZilla dans ton application...
ManuAntibes
Messages postés491Date d'inscriptionmardi 24 octobre 2000StatutMembreDernière intervention18 novembre 20215 29 juin 2006 à 11:24
en fait je crois que je n'ai pas le choix car coté code je ne vois pas Paramètres dans My...
J'ai du prendre Ressources.
Shell(My.Resources.Open_FileZilla)
Open_FileZilla
est le nom de ma ressource et en valeur j'ai mis C:\Program Files\FileZilla\FileZilla.exe"
adamo901
Messages postés139Date d'inscriptionmardi 18 janvier 2005StatutMembreDernière intervention 8 décembre 2008 29 juin 2006 à 13:35
Voilà, je viens de trouver une solution pour toi avec :
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 ta 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 29 juin 2006 à 14:31
Bonjour.
j'ai pris ta solution adamo901 parce que moi aussi j'aimerai faire comme manuantibes.
mais vb me fait une erreur sur cette ligne à cause de Me.hWnd
SetParent(hWndApp,
Me.hWnd)
l'erreur est celle-ci
'hWnd' is not a member of 'WindowsApplication1.MDIparent'.
D'ou peut venir l'erreur ? il faut ajouter une référence ?
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 29 juin 2006 à 14:56
Ha d'accord mais c'est bizzard parce qu'il y a que la dessus qu'il me met une erreur alors que d'habitude c'est pratiquement partout quand je récupère du vb6.
Je vais essayer de voir. merci.
adamo901
Messages postés139Date d'inscriptionmardi 18 janvier 2005StatutMembreDernière intervention 8 décembre 2008 29 juin 2006 à 15:00
Ben j'ai pas remarqué que c'est du .NET.
Le code que j'ai founit est en VB6 et il fonctionne très bien.
J'ai pas vb2005 pour le moment mais si tu arrive à adapter ce code avec le Dot NET (Comme le suggère Renfield) je pense qu'il fonctionnera bien.
drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 30 juin 2006 à 10:05
Salut manuantibes !
Non je n'ai pas réussi. J'essaie de voir comment faire mais je galere énormément.
Alors pour l'instant j'ai laissé tomber. Je te tiens au courant si jamais j'y arrive.