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 :

"Process.Start" utilise comme un "Dialog"


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Scientist
    Inscrit en
    Mai 2013
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Scientist
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2013
    Messages : 110
    Points : 87
    Points
    87
    Par défaut "Process.Start" utilise comme un "Dialog"
    Bonsoir,

    J'utilise le code suivant dans une Sub pour ouvrir la fenetre Region et Language:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start("intl.cpl")
    Mais, je voudrais que rien ne se passe tant que le bouton OK (de cette fenetre Region et Language) ne soit pas clique, un peu comme un Dialog comme ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            Dim result As DialogResult = cd.ShowDialog
            If result = Windows.Forms.DialogResult.OK Then ...
    Tout d'abord: Est-ce possible? J'ai peur que la reponse soit non pour un Process (raison de securite?), mais peut-etre que je me trompe?

    Sinon, y-a-t-il une solution pour contourner le probleme? Ou dois-je oublie cette idee?

    Merci,
    A+
    JLuc01

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Ta question, m'inspire une autre question : pourquoi ?

    La classe globalisation du Framework te fournit tout ce dont tu as besoin pour traiter les questions de "culture" sans toucher aux paramètres régionaux de Windows.

    Même que tu pourrais bien utiliser un ordinateur "Britannique" ou "Français de France" pour faire un programme "Pur russe" et un russe pourrait n'y voir que du feu, pour peu que tu n'oublies rien et ne fasse pas d'erreur de traduction.

    À moins de vouloir vraiment utiliser ton programme pour vraiment changer les paramètres régionaux de Windows (et risquer de te faire plus d'ennemis que d'amis)...

    Et encore, cela pourrait être fait plus discrètement directement dans le registre, à la condition de disposer des autorisations nécessaires.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre régulier
    Homme Profil pro
    Scientist
    Inscrit en
    Mai 2013
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Scientist
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2013
    Messages : 110
    Points : 87
    Points
    87
    Par défaut
    Bonsoir,

    En fait, c'est assez simple: j'ai une 'form' en anglais qui genere un calendrier en anglais, le tout en utilisant un PC anglais.
    Je voudrais avec un simple click, pouvoir changer la 'form' et la culture en francais pour generer un calendrier en francais, le tout en utilisant le meme PC anglais.
    Et le DateTimePicker sur la 'form' ne se met pas en francais sans changer la culture.

    Quand je change la culture manuellement sur mon PC, tout marche bien: en anglais ou en francais. Je voulais automatiser tout ca avec un simple click.
    Finalement, le probleme se situe juste au niveau du DateTimePicker.

    Bref, j'ai bien peur que je me complique la vie pour une bricole.
    Merci quand meme, de t'etre penche sur le probleme.

    A+
    JLuc01

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Ben à ce niveau d'après ce que je comprends du problème de base, c'est quand même nettement plus simple de regarder comment modifier les paramètres de globalization de TON application et non pas du système d'exploitation.

    Il faut être conscient que la modification des paramètres linguistiques du système d'exploitation peut/va avoir des effets de bord sur d'autre logiciel ce qui peut vite s'avérer problématique...

    Concernant la question Process.start en mode "dialog", il n'y a pas de solution facile pour réaliser ceci. Le seul moyen serait de geler ton application (plus particulièrement l'UI) avec un thread secondaire contrôlant le dégel en vérifiant régulièrement le statut du process retourné par Process.start.

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour

    Citation Envoyé par JLuc01 Voir le message
    Bonsoir,

    Je voudrais avec un simple click, pouvoir changer la 'form' et la culture en francais pour generer un calendrier en francais, le tout en utilisant le meme PC anglais.
    Et le DateTimePicker sur la 'form' ne se met pas en francais sans changer la culture.

    Quand je change la culture manuellement sur mon PC, tout marche bien: en anglais ou en francais. Je voulais automatiser tout ca avec un simple click.
    A+
    JLuc01

    En VB, tu peux faire en une ligne sans influencer Windows. (C'est plus long en C#, mais puisque tu es en VB, aussi bien en profiter.)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my.application.changeuiculture("FR-fr")
    Cela change la langue de l'interface. (Forms et éléments apparentés)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my.application.changeculture("Fr-fr")
    Cela change la langue des textes de l'application.

    Ceci dit, pour que cela fonctionne pleinement, il faut que tes forms existent en version française et en version anglaise et que tu aies les fichiers de ressources adéquats. Mais ce n'est pas la mer à boire.

    Il y a un exemple de quelqu'un que je connais, par là


    Et un article par là

    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  6. #6
    Membre régulier
    Homme Profil pro
    Scientist
    Inscrit en
    Mai 2013
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Scientist
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2013
    Messages : 110
    Points : 87
    Points
    87
    Par défaut
    Bonsoir,

    Maintenant, je crois que je ne comprend plus rien.

    Donc, voila une partie du code que j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub frmCalendar_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ' Find the Current Culture on this computer
            lang = System.Threading.Thread.CurrentThread.CurrentCulture.Name
            pbGBFR.SizeMode = PictureBoxSizeMode.StretchImage
            If lang = "en-GB" Then
                pbGBFR.Image = My.Resources.uk_Flag
            Else ' lang = "fr-FR"
                pbGBFR.Image = My.Resources.fr_Flag
            End If
            langSelection()
    ...etc...
    La Sub 'langSelection' transforme les labels, boutons... en anglais ou en francais dependant de la variable 'lang'. J'avais utilise dans le passe les resx files, mais je ne trouvais pas cela pratique ou bien je ne maitrisait pas bien. Bref, une Sub pour adapter le language, ca marche tres bien pour un petit programme de 1200 lignes.

    Mais, de cette facon j'ai toujours le probleme avec le control 'DateTimePicker' (ou bien un 'MonthCalendar').

    J'ai essaye: my.application.changeuiculture("FR-fr"), mais ca ne marche pas ou bien je ne comprend pas comment utiliser ce bout de ligne.
    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Private Sub pbGBFR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pbGBFR.Click
            My.Application.ChangeUICulture("FR-fr")
        End Sub
    Cela ne fait rien de particulier. Ou je ne vois pas.

    Si je comprends bien, 'my.application.changeculture("FR-fr")' peut changer le texte de l'application grace aux fichiers resx.
    Dans ce cas, je dois changer pas mal de chose. C'est ce que j'ai cru comprendre dans l'article 'Code projet'.

    Je reviens aussi a 'My.Application.ChangeUICulture("FR-fr")' qui devrait marcher plus simplement et devrait me changer le 'DateTimePicker' en anglais ou en francais selon la demande.
    Ce n'est pas tres clair pour moi, surtout avec le controle 'DateTimePicker'. Un simple click sur un bouton ne changera pas sur ce controle le mois 'October' en 'Octobre'.

    A+
    Jean-Luc

  7. #7
    Membre régulier
    Homme Profil pro
    Scientist
    Inscrit en
    Mai 2013
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Scientist
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2013
    Messages : 110
    Points : 87
    Points
    87
    Par défaut
    Bonsoir,

    Je reviens sur mon dernier message, car je n'etais peut-etre pas tres clair.

    Je pense pouvoir utiliser les fichier resx si necessaire. Je l'ai fait en exercice avec une 'form' comprenant un 'label', un 'bouton' et un 'textbox'.
    Mais en fait, ce que je ne sais pas faire: c'est changer le controle MonthCalendar (ou DateTimePicker) en francais (Lundi, Octobre) ou en anglais (Monday, October) a l'aide d'un simple click (utilisant peut-etre My.Application.ChangeUICulture("FR-fr")).

    Si toutefois c'est possible.

    A+
    JLuc01

Discussions similaires

  1. Problème Utilisation System.Diagnostics.Process.Start
    Par arngrimur dans le forum ASP.NET
    Réponses: 14
    Dernier message: 02/11/2011, 16h51
  2. Réponses: 2
    Dernier message: 12/02/2008, 11h59
  3. Réponses: 3
    Dernier message: 27/09/2007, 13h55

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