Ouvrir une document openoffice dans une fenetre Mdi - VB/VBA/VBS - Programmation
Marsh Posté le 21-08-2005 à 13:22:01
hcalc = FindWindow(vbNullString, "test.doc- Microsoft Word" )
il manque pas un espace entre test.doc et le tiret ?
hcalc = FindWindow(vbNullString, "test.doc- Microsoft Word" )
Sinon je pense que tu n'as qu'un test.doc d'ouvert, en récupérant juste la fenetre qui contient "test.doc" ??
Marsh Posté le 22-08-2005 à 11:16:41
Merci pour la remarque (faute de frappe) mais le probleme n'est pas la (j'arrive à ouvrir les document word dans ma fenetre).
Si tu vois une autre solution !!
Marsh Posté le 22-08-2005 à 13:44:08
Code :
|
si c'est Open Office, c'est normal que ça échoue non ? Faut adapter le titre... et comme toujours, tester la valeur de retour => que hcalc n'est pas nul.
Marsh Posté le 22-08-2005 à 14:33:28
Merci probleme resolu !!
hcalc = FindWindow(vbNullString, "test.doc - OpenOffice.org 1.1.4 " )
En fait il fallait mettre un espace aprés "1.1.4 " sinon le nom de la fenetre n'est pas bon et c pour ca qu'il arrivait pas a trouver la fenetre.
Merci a HelloWorld pour m'avoir fait penser a verifier le hcalc et aussi a Knakes qui ma mis sur la voie de l'epace manquant !!!!
Marsh Posté le 22-08-2005 à 18:09:49
de rien
pour une manière plus générale, il y a pas un InString pour avoir juste le nom du fichier ?
Je m'explique, si dans le nom de la fenetre il y a au moins le nom du fichier alors -> C'est validé ?
J'ai pas trop la tête a réfléchir la alors bon, c'est pour continuer dans la voie.
++
Marsh Posté le 18-08-2005 à 09:47:26
Bonjour a tous,
Je souhaite ouvrir des documents openoffice dans une fenetre fille MDI en visual basic 6.
Or j'ai testé avec n'importe quel document comme blocnote ou word cela fonctionne mais les documents d'openoffice ceux ci s'ouvrent en dehors de ma feuille MDI mere.
Voici le code de la solutions qui marche avec des documents autres que openoffice :
Solution)
' Declaration d'une fonction permettant de trouver l'identifiant d'une fenetre en fonction de son entete
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
' Fonction permettant d'ouvrir n'importe quel document
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
...
Private sub test()
Dim hcalc As Long
Dim RetVal
dim hParent As Long
' J' ouvre mon fichier word ou openoffice
RetVal = ShellExecute(0, "Open", "C:\Documents and Settings\Administrateur\Bureau\test.doc", "", "", 10)
' Je recupere l'identifiant de ma fenetre =>hwnd en fonction de son entete
hcalc = FindWindow(vbNullString, "test.doc- Microsoft Word" )
' Je change la fenetre parent de mon document en lui donnant le hWnd de ma fenetre fille
hParent = SetParent(hcalc, Me.hWnd)
end sub
Si quelqu'un a une idée sur le probleme ou mieux une solution ca m'interresse, pour faire en sorte d'ouvrir des documents "openoffice" via une fenetre MDI fille.