IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6]Questions et problèmes sur OpenOffice


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut [VB6]Questions et problèmes sur OpenOffice
    Bonjour à tous,

    Voilà, j'ai quelques petites questions sur Open Office :

    1) Voici un exemple de code (qui fonctionne bien). Le problème, c'est que j'ai remarqué que les process "sOffice.exe" et "sOffice.bin" ne se ferment pas après l'éxécution de ce code qui me parrait tout à fait correct (avec fermeture des objets ouverts, ...).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    'Vérifie la présence d'OpenOffice Calc sur le poste utilisateur
    Public Function CheckIfOOoCalcInstalled() As Boolean
        Dim oServiceManager As Object
        Dim oDesktop As Object
        Dim oDocument As Object
        Dim oOpenParam(2) As Object 'a Visual Basic array, with 3 elements
        Dim ErrMsg As String
     
    On Error GoTo ErrHandler
        'Création d'un service OpenOffice.org
        Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
        Set oDesktop = oServiceManager.CreateInstance("com.sun.star.frame.Desktop")
        'We call the MakePropertyValue function, defined just before, to access the structure
        Set oOpenParam(0) = MakePropertyValue("ReadOnly", True)
        Set oOpenParam(1) = MakePropertyValue("Password", "")
        Set oOpenParam(2) = MakePropertyValue("Hidden", True)
        'Création d'un nouveau classeur
        Set oDocument = oDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, oOpenParam())
        Call oDocument.Close(False) 'emeture sans sauvegarde
        ' Suppression des objets pour libérer la mémoire
        Set oDocument = Nothing
        Set oDesktop = Nothing
        Set oServiceManager = Nothing
        CheckIfOOoCalcInstalled = True
        Exit Function
    ErrHandler:
        CheckIfOOoCalcInstalled = False
        Exit Function
    End Function
     
    'Creates a sequence of com.sun.star.beans.PropertyValue s
    Public Function MakePropertyValue(cName, uValue) As Object
        Dim oStruct, oServiceManager As Object
     
        Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
        Set oStruct = oServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
        oStruct.name = cName
        oStruct.Value = uValue
        Set MakePropertyValue = oStruct
    End Function
    Que manque-t-il pour tuer correctement les process ?

    2) Dans la fonction MakePropertyValue faut-il fermer l'objet oServiceManager ? J'ai trouvé cette fonction telle qu'elle sur le site officielle de OOo, donc ...

    3) Quelle commande utiliser pour faire un retour chariot dans le writer (Word).

    Merci d'avance pour votre aide.

    ++

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir

    tu peux faire un essai en remplaçant la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call oDocument.Close(False) 'emeture sans sauvegarde
    par



    bonne soiree
    michel

  3. #3
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Je teste ça.

    Merci

    EDIT : ça ne fonctionne pas non plus. De plus en temp d'exécution, c'est bcp plus long.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour


    j'espere que ce lien pourra t'aider

    http://www.mail-archive.com/prog@fr..../msg00993.html



    bonne journée
    michel

  5. #5
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Ok, merci !

    C'est exactement la même question que je me posais !
    Par contre, y'a apparemment pas de solution super efficace et multi-os.
    La fonction ci dessous, plante OpenOffice (rapport de bug automatique)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Call oDesktop.Terminate
    Je pense que je vais devoir tuer manuellement les processus "soffice.exe" et "soffice.bin".

    Pour ceux qui ont OpenOffice sur leur poste, pouvez-vous me valider que ces processus ne change pas de nom en fonction de l'OS.

    Merci de m'indiquer votre OS, ainsi que le nom des processus. (Sous W2000 et XP Pro, les noms sont identiques). Pour les autres OS, j n'ai pas moyen de le savoir.

    Merci d'avance,

    ++

    PS : Quelqu'un a une petite idée pour la question 3)

  6. #6
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Pour la question 3), j'ai trouvé l'exemple là dans le guide du developpeur VB pour OOo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Set objCursor = oDocument.Text.createTextCursor
    Call objCursor.goRight(20, False) 'déplace le curseur
    Call oDocument.Text.insertControlCharacter(objCursor, _
                 "com.sun.star.Text.ControlCharacter.LINE_BREAK", False)
    Ca me retourne un message d'erreur !

    Une idée ?
    Merci d'avance

  7. #7
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par marsup54
    Ca me retourne un message d'erreur !
    Et le jeu c'est de deviner lequel???

    Qu'est-ce qu'on gagne si on devine???

  8. #8
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Et le jeu c'est de deviner lequel???

    Qu'est-ce qu'on gagne si on devine???
    Les personnes concernées par ce sujet (ou pouvant répondre), l'ont à mon avis déjà rencontré.
    Néanmoins, voici le message :
    InterfaceOleWrapper_Impl::Invoke :
    [automation bridge]UnoConversionUtilities<T>::variantToAny
    Cannot convert the value of vartype :"8" to the expected UNO type of type class: 4
    Il ne veut d'ailleurs pas dire grand chose.

    EDIT :
    En remplacant "com.sun.star.Text.ControlCharacter.LINE_BREAK" par 0, ça fonctionne apparemment.
    Bizarre...

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    edition

  10. #10
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    edition
    ???

    Les questions 2) et 3) sont résolues.
    Reste la question 1) avec le problème de process qui ne se ferme pas ...

    J'attends un peu avant de cloturer ce post, au cas ou quelqu'un trouverait une solution.

    Encore merci pour votre aide.

    ++

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour

    oui j'ai édité et supprimé mon message hier soir .

    car je voulais te proposer de remplacer

    "com.sun.star.Text.ControlCharacter.LINE_BREAK" par 0

    avant de m'apercevoir que tu avais déja trouvé la solution tout seul ...;o)


    bonne journée
    michel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6] Question sur l'appellation d'un elements
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/06/2006, 23h51
  2. [VB6]Question sur Make .exe
    Par riesseg dans le forum VB 6 et antérieur
    Réponses: 19
    Dernier message: 19/05/2006, 22h54
  3. [VB6]Questions sur deux contrôles
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 07/05/2006, 20h06
  4. [VB6]Questions sur menu
    Par batmat86 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/05/2006, 13h45
  5. [VB6]Question bête sur les paramètres optionels
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/10/2005, 20h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo