Ouvrir une document openoffice dans une fenetre Mdi

Ouvrir une document openoffice dans une fenetre Mdi - VB/VBA/VBS - Programmation

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.

Reply

Marsh Posté le 18-08-2005 à 09:47:26   

Reply

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" ??


---------------
now : do nothing
Reply

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 !!

Reply

Marsh Posté le 22-08-2005 à 13:44:08    

Code :
  1. hcalc = FindWindow(vbNullString, "test.doc- Microsoft Word" )


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.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

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 !!!!

Reply

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.
++


---------------
now : do nothing
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed