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 :

Raccourci bureau d'un item ContextMenuStrip [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut Raccourci bureau d'un item ContextMenuStrip
    Bonjour,

    J'ai une petite question... Je me lance. Est-il possible de créer un raccourci bureau pour un item ContextMenuStrip?

    Nom : toolTip.jpg
Affichages : 118
Taille : 12,3 Ko

    Dans mon Exemple, je veux que "Lancer ERTag" soit également un raccourci bureau.

    Si quelqu'un a une idée, je suis preneur, merci !

  2. #2
    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
    Bonsoir Kurt225,

    Ce que tu illustres dans ta capture se nomme 1 NotifyIcon auquel tu ajoutes depuis la propriété "ContextMenuStrip" 1 contrôle de type ContextMenuStrip paramétré avec des items ("Lancer ERTag","Fermer ERTag","A propos") !

    Ton explication n'est pas très clair du fait que tu n'utilises pas les bons termes .... soit plus précis stp.


    A+

  3. #3
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Une, seule, solution ... C'est la do-cu-men-ta-tion ! ♫

    http://plasserre.developpez.com/cour...-forms5#LX-Q-4
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  4. #4
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    Ok merci pour la doc _Ez3kiel, mais d'après ce que je vois, le raccourci permet d'exécuter un .exe.

    Or l'item de ContextMenuStrip "Lancer ErTag" permet de lancer une fonction et pas un executable.

    Et je voulais savoir si c'était possible de créer un raccourci bureau qui se comporte comme un item ContextMenuStrip..

    Merci.

  5. #5
    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
    Citation Envoyé par kurt225 Voir le message
    Or l'item de ContextMenuStrip "Lancer ErTag" permet de lancer une fonction et pas un executable.
    Oui et l'utilisation de la classe process permet de lancer un exe depuis le corps d'une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Imports System.Threading
     
      Private Sub ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem.Click
            Process.Start("cmd.exe")
        End Sub
    Citation Envoyé par kurt225 Voir le message
    Et je voulais savoir si c'était possible de créer un raccourci bureau qui se comporte comme un item ContextMenuStrip..

    Merci.
    Toujours rien compris o_O....A l'occasion fais un montage avec des captures d'écrans du résultat désiré car là perso je ne comprends rien de ce que tu souhaites faire......


    A+

  6. #6
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    Excuse moi wallace, c'est vrai je ne suis pas très clair, j'ai un peu de mal a m'expliquer.

    Pour simplifier, je veux si possible me débarasser du ToolStripMenuItem nommé "Lancer ERTag", et créer un raccourci bureau qui execute ce que fait le ToolStripMenuItem "Lancer ERTag", c'est à dire la une fonction de la Form, cette dernière étant invisible si on ne clique pas sur "Lancer ERTag".

    Voila en fait le raccourci ne doit pas lancer un .exe, mais executer la fonction ERTag.

    En fait l'utilisateur n'a pas la main sur la barre des tâches, donc ne voit pas "Lancer ERTag". Peut etre que le raccourci bureau, c'est trop tordu. Si il y a une autre solution je suis preneur.

    Le ToolStripMenuItem : "Lancer ERTag" rend la form suivante visible :

    Nom : Explication.jpg
Affichages : 120
Taille : 44,5 Ko

    En gros un raccourci qui rend la form visible serait l'idéal. Comme ça je pourrait supprimer le ToolStripMenuItem "Lancer ERTag" car l'utilisateur final n'a pas de vue sur la barre des tâches.

  7. #7
    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
    ne connaissant pas le comportement exact de ton application de départ :
    - 1 formulaire s'ouvre ?? est-il réduit dans la zone de notification à l'ouverture ??
    - A quel moment apparaît le contextmenuStrip ?? Réduction/rétablissement ??

    ...breff si j'ai à peu près compris :

    L'idéal pour toi si l'utilisateur n'a pas accès à la barre des taches c'est d'afficher un autre Form dans lequel tu mets 1 bouton et tu fais appels à la fonction désirée.....
    C'est très vulgaire comme explication mais c'est le principe qui compte, ton imagination fera le reste !

    Pour faire cela il te faudra apprendre à passer des paramètres entre formulaires pour pouvoir jongler entre les 2 formulaires (s'il y a des données à transmettre bien sure) : afficher l'appelé (Form2) et réduire l'appelant (Form1).


    A+

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    moi j'ai réussi à comprendre dès le début ^^

    un raccourci ne peut lancer qu'un exe
    par contre il peut y avoir des paramètres
    par exemple machin.exe -aa
    les paramètres peuvent être récupérées et analysés par l'exe pour faire quelque chose de spécifique (commandlineargs)
    donc en théorie tu pourrais appeler une fonction ou afficher tel form

    par contre en théorie lancer un exe ne permet pas d'interférer avec un exe en cours, ca devrait en lancer un 2ème, et je crois comprendre que ton programme se lance au démarrage et qu'il est caché dans le systray)
    après il doit y avoir des solutions, voir si le shell de la base de registre peut aider (je ne connais pas trop mais des fois on double clic sur un fichier et c'est une instance d'un exe déjà ouverte qui s'en occupe)
    sinon il reste la possibilité de faire un exe spécifique qui quand on le lance communique avec l'exe en cours ; il y a plusieurs méthodes de communication inter process
    après il faudrait aussi que cet exe vérifie que l'exe principal est en route peut etre ...


    sinon il reste la possibilité de faire une combinaison de touche (genre ctrl alt une lettre) qui remplacerait ce raccourci (via api hook keyboard)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Citation Envoyé par kurt225 Voir le message
    Ok merci pour la doc _Ez3kiel, mais d'après ce que je vois, le raccourci permet d'exécuter un .exe.

    Or l'item de ContextMenuStrip "Lancer ErTag" permet de lancer une fonction et pas un executable.

    Et je voulais savoir si c'était possible de créer un raccourci bureau qui se comporte comme un item ContextMenuStrip..

    Merci.

    Haaaaaan, au temps pour moi alors ! Je pensais que "Lancer ErTag" lançait un process ...

    Et +1 pour Pol63, il a énoncé à peu près toutes les solutions possibles pour le fonctionnement que tu souhaites.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  10. #10
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    Je vous remercie, je vais me débrouiller pour la suite, je voulais juste qu'on me remette sur une piste, c'était confus, mais j'y vois plus clair. Merci à vous tous.

    Edit :

    sinon il reste la possibilité de faire une combinaison de touche (genre ctrl alt une lettre) qui remplacerait ce raccourci (via api hook keyboard)


    Ca m'intéresse. Y a t-il un moyen de créer un raccourci clavier pour un ContextMenuStrip Item pour éviter de créer un autre exe?

    Et aussi, que le raccourci clavier s'execute peu importe sur quelle fenêtre on se trouve.



    Très intéressant tout ça.

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par kurt225 Voir le message
    Ca m'intéresse. Y a t-il un moyen de créer un raccourci clavier pour un ContextMenuStrip Item pour éviter de créer un autre exe?

    Et aussi, que le raccourci clavier s'execute peu importe sur quelle fenêtre on se trouve.
    une fenetre ne peut capturer les évènements claviers que si elle a le focus (plus restrictif que juste visible déjà)
    avec le hook clavier tu peux récupérer même si ta fenetre n'est pas visible (déjà mentionné ...)


    par contre essaye d'être plus clair dans tes propos quand même, et essaye de te documenter un peu, lire des tutos sur des généralités est utile à tous
    et en essayant des choses on a souvent des réponses aussi
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre du Club
    Homme Profil pro
    Apprenti développeur
    Inscrit en
    Février 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti développeur

    Informations forums :
    Inscription : Février 2014
    Messages : 102
    Points : 58
    Points
    58
    Par défaut
    Ok ça marche Pol, et merci pour les astuces.

    Edit :

    J'ai trouvé comment faire, en utilisant le Timer et la fonction GetAsyncKeyState.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer
    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
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
     
            Dim ctrlkey As Boolean
     
            Dim k As Boolean
     
     
            ctrlkey = GetAsyncKeyState(Keys.ControlKey)
            k = GetAsyncKeyState(Keys.E)
     
     
            If ctrlkey And k = True Then
     
    'APPELER LA FONCTION ICI
     
     
            End If
     
        End Sub
    Voila ca marche, peu importe ou je me trouve j'ai juste à faire : CTRL + E et la fenetre apparait !

    Seulement...

    La fonction appelée après le : If ctrlkey And k = True Then est temporisée car elle est dans le timer et la fonction ne marche plus comme avant à cause de cela.
    J'ai essayé de transformer ma fonction en thread mais rien n'y fait.

    Y'a t'il un moyen d'appeler la fonction sans qu'elle soit rafraichie toutes les x millisecondes? Je sèche. En tout cas merci, sans vous j'aurais pas trouvé.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/07/2008, 13h00
  2. Raccourci Bureau pour site Internet
    Par vandrie dans le forum Internet
    Réponses: 8
    Dernier message: 03/10/2007, 21h40
  3. [Raccourci]Bureau 3D Vista
    Par brak__ dans le forum Windows Vista
    Réponses: 46
    Dernier message: 16/06/2007, 06h54
  4. [JWS] raccourcis bureau
    Par philippe13 dans le forum Applets
    Réponses: 1
    Dernier message: 08/03/2007, 19h40
  5. Raccourci bureau probleme "..."
    Par winow dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/03/2006, 13h03

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