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.NET Discussion :

Problème de condition de lancement d'une installation VB


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Par défaut Problème de condition de lancement d'une installation VB
    Bonjour à tous,

    J'ai développé un programme sous visual basic et viens de créer une installation afin de le diffuser chez des collègues. Ce programme est un composant office.

    J'ai pu voir que je pouvais difficilement personnaliser mon installation. J'aimerais que l'installation se lance sous une certaine condition; qu'il n'y est pas de programme office d'ouvert (Outlook, Word, Excel)

    J'ai vu que l'on pouvais réaliser des conditions de lancement mais je n'arrive pas à utiliser cette fonction...D'après ce que j'ai compris, on peu seulement réaliser des conditions en fonctions de clé de registre, de présence de tel ou tel fichier ce qui n'arrange pas mon problème.

    J'ai essayer de trouver une clé de registre permettant d'identifier mon programme lorsqu'il est ouvert ou fermé mais je n'ai rien trouvé...

    Avez vous une solution à me proposer? Dois je passer par un autre type d'installation?

    Merci pour votre aide qui me serais précieuse.

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Par défaut
    J'ai trouvé une solution plus ou moins propre à mon problème. Je n'ai pas réussi à passé par les fonctionnalité propre à visual studio. (En gros j'ai fait un peu de bricolage...)

    J'ai donc mon fichier Setup.msi qui installe mon programme. Afin de réaliser une condition de lancement (détection d'un programme office ouvert) j'ai créer un second programme .exe qui va réaliser cette condition.

    Explication :
    - J'ai renommé à la main mon fichier "Setup.msi" en "Setup" afin que les utilisateur n'est pas l'idée de lancer ce programme d'installation.
    - J'ai ensuite créé un programme exécutable dans le même fichier que le "Setup" qui fera les fonctions suivantes :

    * Vérification que les processus offices sont présent. Si oui je demande de les arrêter et je stop le programme.
    * Sinon je continue et renomme mon "Setup" en "Setup.msi" puis je le lance.
    * L'installation se réalise
    * Lorsque l'installation est terminée je renomme mon "Setup.msi" en "Setup"

    Voila, le tour est joué!

    Alors c'est une solution paliative mais elle à le mérite de fonctionner.

    J'espère que cela pourra aider quelqu'un.

    Par contre j'ai tout de même un problème...ce fichier ".exe" ne peu pas être lancer directement depuis le réseau...ce qui est quand même frustrant.
    Avez vous une idée de solution?

    Voici quand même le programme (à mettre dans un module) :

    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
     
        Dim MyProcess As New Process
        Dim i As Integer = 0
     
        Sub main()
     
            Dim MyProcessesExcel() As Process
            Dim MyProcessesWord() As Process
            Dim MyProcessesOutlook() As Process
            Dim i_Result As Integer = MsgBoxResult.Cancel
            'Dim MyTime As Date
     
            Do
                MyProcessesExcel = Process.GetProcessesByName("EXCEL")
                MyProcessesWord = Process.GetProcessesByName("WINWORD")
                MyProcessesOutlook = Process.GetProcessesByName("OUTLOOK")
     
                If MyProcessesExcel.Length <> 0 Or MyProcessesOutlook.Length <> 0 Or MyProcessesWord.Length <> 0 Then
                    i_Result = MsgBox("Setup needs the following applications to be closed :      " & Chr(10) & _
                            Chr(10) & "     - WINWORD" & _
                            Chr(10) & "     - EXCEL" & _
                            Chr(10) & "     - OUTLOOK" & Chr(10) & _
                            Chr(10) & "Please make sure to quit them before continuing", vbExclamation + vbRetryCancel)
                Else
                    i_Result = MsgBoxResult.Cancel
                    If My.Computer.FileSystem.FileExists(My.Computer.FileSystem.CurrentDirectory & "\Properties_Editor") Then
                        My.Computer.FileSystem.RenameFile(My.Computer.FileSystem.CurrentDirectory & "\Properties_Editor", "Properties_Editor.msi")
                        MyProcess.StartInfo.FileName = My.Computer.FileSystem.CurrentDirectory & "\Properties_Editor.msi"
                        MyProcess.Start()
                        While MyProcess.HasExited = False
                            System.Windows.Forms.Application.DoEvents()
                            Threading.Thread.Sleep(500)
                        End While
                        My.Computer.FileSystem.RenameFile(My.Computer.FileSystem.CurrentDirectory & "\Properties_Editor.msi", "Properties_Editor")
                    Else : MsgBox("Error : The Properties_Editor file is not in the same folder 'Setup Delphi Properties Editor.exe'.")
                    End If
                End If
     
            Loop While i_Result = MsgBoxResult.Retry
     
        End Sub

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

Discussions similaires

  1. [XL-2013] problème de condition avec cellule contenant une formule
    Par dmoluc dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/05/2013, 14h17
  2. [RHEL6] problème de carte réseau lors d'une installation réseau
    Par wodel dans le forum RedHat / CentOS / Fedora
    Réponses: 0
    Dernier message: 13/05/2012, 12h54
  3. [AC-2007] Condition de lancement d'une macro
    Par Mobydisk21 dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/12/2009, 07h02
  4. Condition de lancement d'une installation VB
    Par zlink17 dans le forum VB.NET
    Réponses: 1
    Dernier message: 15/10/2008, 17h10

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