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 :

Lancer et programme externe (.exe) sur x86 et x64.


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Lancer et programme externe (.exe) sur x86 et x64.
    Bonjour, voilà, je ne suis pas débutant car j'ai déjà fait des programme en VB.net / C#. Mon problèmes et que je me souvient plus quelle codage je doit mettre pour exécuter un logiciel externe comme Google Chrome et d'autres logiciel

    Mon projet et en VB.net, voici le code si dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub B_OpenChrome_Click(sender As Object, e As EventArgs) Handles B_OpenChrome.Click
            Try
                Process.Start("https://www.facebook.com")
            Catch ex As Exception
                '' x86''
                Process.Start("C:\Program Files\Google\Chrome\Application\chrome.exe")
            End Try
        End Sub
    Dans le codage, je voudrais supprimer (C:\Program Files\Google\Chrome\Application\) et garder le chrome.exe car l'application et en Any CPU donc exécutable sur les systèmes x86 et x64. Je sais juste que la destination du fichier n'est pas la même donc c'est pour celà que je veux enlever (C:\Program Files\Google\Chrome\Application\)

    J'ai juste besoin d'un conseil, juste pour savoir si celà va fonctionner ou afficher un message d'erreur. si je garde (Process.Start("https://www.facebook.com")), sa risque d'ouvrir un autres programme comme Microsoft Edge ou un autre navigateur par défault donc je ne veux pas.

    Le codage au niveau du lien Facebook, sur mon PC ouvre facebook mes sur Google Chrome, j'ai r'ajouter en dessous, l'ouverture de Google chrome, mes je pence que se code et du n'import quoi, j'ai donc besoins d'un conseil, et savoir quelle code mettre.

    Je vous remercie d'avance

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Bonjour aymeric21,

    Vous pourriez utiliser une variable dans le fichier app.config, des instructions de précompilation (#if en C#) ou encore mettre à jour une variable du projet dans le csproj ou le vbproj.

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2017
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par jcdentons Voir le message
    Bonjour aymeric21,

    Vous pourriez utiliser une variable dans le fichier app.config, des instructions de précompilation (#if en C#) ou encore mettre à jour une variable du projet dans le csproj ou le vbproj.
    Oui, mes au niveau du codage, car c'est di vb.net, je me demande si sa va fonctionner, et j'ai mis en Any CPU mes les repertoires sur x86 & x64 ne sont pas les même, si je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Process.Start("chrome.exe")
    Sur x86 le code ne fonctionne pas. Si vous voulez le code complet, je peut le publié.

    Cordialement

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Il n'y a pas de remède miracle, il faut juste se poser les bonnes questions dès le départ ......

    --> Déjà il faut savoir si ta problématique concerne uniquement l'exécution d'une url à partir d'un navigateur spécifié (Chrome, Opéra, Mozilla, Edge, IE, etc...) ????
    Lequel cas il te faudra énumérer exhaustivement tous les navigateur existants pour connaitre l'emplacement de l'exécutable, exemple :
    - pour chrome sur OS x32 : "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ou OS X64 : "C:\Program Files\Google\Chrome\Application\chrome.exe"
    - Pour IE sur OS x86 : "C:\Program Files (x86)\Internet Explorer\iexplore.exe" ou OS X64 : "C:\Program Files\Internet Explorer\iexplore.exe"

    Pour énumérer les applications installées sur l'OS tu peux parcourir la clé de registre suivante :
    - Pour OS x64 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
    et/ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
    - Pour OS x32 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
    --> Veux-tu que ton url soit exécutée depuis le navigateur par défaut de l'utilisateur ???

    Lequel cas il faut que tu parcours la base de registre pour savoir si l'utilisateur a déterminer un navigateur par défaut sinon tu utilises IE car il existe dans tous les OS Windows :

    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
     
     
        Public Shared sub ExecUrl()
            Process.Start(GetDefaultBrowserPath,"TON_URL")
        End Sub
     
        Public Shared Function GetDefaultBrowserPath() As String
            Dim defaultBrowserPath As String = String.Empty
            Dim regkey As RegistryKey = Nothing
            Try
                regkey = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\shell\Associations\UrlAssociations\http\UserChoice", False)
                If regkey IsNot Nothing Then
                    Dim ProgId = regkey.GetValue("Progid").ToString()
                    regkey = Registry.ClassesRoot.OpenSubKey(ProgId & "\Shell\open\command", False)
                    defaultBrowserPath = If(Not regkey Is Nothing,
                        regkey.GetValue("").ToString(),
                        Registry.ClassesRoot.OpenSubKey("HTTP\Shell\open\command", False).GetValue("").ToString())
                Else
                    defaultBrowserPath = Registry.ClassesRoot.OpenSubKey("HTTP\Shell\open\command", False).GetValue("").ToString()
                End If
            Catch ex As Exception
     
            Finally
                If Not regkey Is Nothing Then regkey.Close()
            End Try
            Return CleanupPath(defaultBrowserPath)
        End Function
     
        Private Shared Function CleanupPath(path$) As String
            path = path.ToLower().Replace("""", "")
            If Not path.EndsWith(".exe") Then
                path = path.Substring(0, path.LastIndexOf(".exe", StringComparison.Ordinal) + ".exe".Length)
            End If
            Return path
        End Function

    ++

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