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 Compréhension code VB .Net


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Points : 6
    Points
    6
    Par défaut Problème de Compréhension code VB .Net
    Bonjour,
    J'ai besoins de faire en sorte qu'avec un raccourcis clavier je puisse lancer mon application, en VB.NET, depuis la zone de notification de windows. j'utilise visual basic express 2010.
    En faisant des recherches sur google, j'ai trouvé un code que je n'arrive pas à comprendre, et donc à faire marcher, vu mon manque d'expérience et de connaissance.
    Je cherche à mettre comme raccourcis clavier CTRL + une lettre mais je sais pas qu'est ce qu'il faut que je modifie.
    Merci pour vos réponses, Bonne journée

    Voici le code :

    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
    42
    43
    Enum FsModifiers 
         None = 0 
         Alt = 1 
         Control = 2 
         Shift = 4 
         Windows = 8 
         Alt_Ctrl = 3 
         Alt_Shift = 5 
         Alt_Windows = 9 
         Ctrl_Shift = 6 
         Ctrl_Windows = 10 
         Shift_Windows = 12 
         No_Repeat = 16384 
    End Enum 
     
    Declare Auto Function RegisterHotKey Lib "user32.dll" (ByVal handle As IntPtr, ByVal id As Integer, ByVal fsModifier As FsModifiers, ByVal vk As Keys) As Boolean 
    Declare Auto Function UnregisterHotKey Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal id As Integer) As Integer 
     
    Private Const HOTKEY_ID1 As Integer = 571584 
    Private Const HOTKEY_ID2 As Integer = 752452 
    Private Const WM_HOTKEY As Integer = 786 
     
    Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) 
         Select Case m.Msg 'on va tester le message reçu à chaque appel de cette fonction 
              Case WM_HOTKEY 'si il s'agit du message WM_HOTKEY (si l'utilisateur a appuyé sur CTRL + ALT + B) 
                   If m.WParam = HOTKEY_ID1 Then 'on cherche quelle hotkey a déclenché l'évènement 
                        MsgBox("Ctrl + alt + b") 
                   ElseIf m.WParam = HOTKEY_ID2 Then 
                        MsgBox("Ctrl + alt + shift + win + d") 
                   End If 
          End Select 
          MyBase.WndProc(m) 
    End Sub 
     
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing 
         UnregisterHotKey(Me.Handle, HOTKEY_ID1) 
         UnregisterHotKey(Me.Handle, HOTKEY_ID2) 
    End Sub 
     
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
         RegisterHotKey(Me.Handle, HOTKEY_ID1, FsModifiers.Alt_Ctrl, Keys.B) 
         RegisterHotKey(Me.Handle, HOTKEY_ID2, FsModifiers.Ctrl_Windows + FsModifiers.Alt_Shift, Keys.D) 
    End Sub
    j'ai trouvé ce code sur :
    http://social.msdn.microsoft.com/For...1-7af71a582e00

  2. #2
    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
    Le code ci dessus te permet à priori (après avoir lu en diagonale tout vite tout vite) de créer des raccourcis DANS ton application, or si j'ai bien compris, toi tu veux lancer ton application avec un raccourci depuis windows ? (Oui j'ai pas compris quand tu dis "lancer mon application de la zone de notification windows ... )

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Points : 6
    Points
    6
    Par défaut
    Désolé de ne pas avoir été plus clair : en faite je veux pouvoir ouvrir mon application depuis la zone de notification (sytemtray, à coté de l'heure) directement avec un raccourci clavier.
    Pour être plus clair, j'explique mon projet. Google desktop était bien pratique mais depuis que google l'a enlevé, mes recherches google sont bien plus lentes.
    Après plusieurs jours de recherche sur internet pour trouver un logiciel que le remplace, je me suis retrouvé bredouille et j'ai donc décidé de le créer en VB.net (car c'est le seul langage que j'ai déjà un tout petit peu manipulé).
    Je me suis donc mis au boulot et j'ai créé une application très pratique pour les recherche, qui se place dans la zone de notification quand je la minimise.

    Au début, je faisais en sorte que mon application se ferme après la recherche, comme ça je pouvais utiliser les raccourcis clavier que windows nous proposent de configurer (cf le site que tu as mis en lien). Le problème est que l'application met un certain temps avant de s'ouvrir et au final ça rend pas mes recherches plus rapides.

    Si je faisais en sorte que mon application peut pas s'ouvrir en plusieurs exemplaire, je pourrai alors utiliser les raccourcis fourni par windows ?

  4. #4
    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
    Si tu la lances au démarrage et qu'ensuite tu la laisses dans ta zone de notification, qu'une fois ta recherche effectuée elle se reminimalise, c'est gênant ? Je pense pas qu'elle coûte beaucoup en micro-proc ...

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Points : 6
    Points
    6
    Par défaut
    Je la lance au démarrage et je la laisse dans la zone de notification déjà.
    Maintenant je cherche à avoir un raccourcis clavier pour ne pas avoir à cliquer dessus quand je veux faire une recherche (étant étudiant, je passe une grand partie de mes révisions à faire des recherches, d'où cette application).
    Si j'utilise l'utilitaire de windows pour les raccourcis clavier, à chaque fois que je fais la combinaison de touche raccourcis ça m'ouvre mon application en un autre exemplaire, et c'est pas très ergonomique (même si je suis d'accord, elle prend pas beaucoup de micro pross et de plus que j'ai un i5).

    j'ai du mal à me faire comprendre, et j'en suis désolé. Donc je mets en lien le code source de mon application via mega

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 119
    Points
    25 119
    Par défaut
    tu laisses le fait que l'appli se lance au démarrage et se mette en bas
    au démarrage de ton appli tu fais un hook clavier (à googler), ca va te permettre de recevoir un évènement lors de l'utilisation du clavier, même sur le bureau ou une autre appli
    et si c'est la combinaison de touche qui t'interresse tu fais apparaitres ta fenêtre

  7. #7
    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 : 41
    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
    Pol63 te donne une excellente piste de réflexion.

    Bien entendu, ce genre de manipulation nécessite que ton application démarre à l'ouverture d'une session et tourne en tâche de fond. Il n'est pas nécessaire d'avoir un formulaire ouvert pour que l'application tourne.

    Il faut par contre modifier quelque peut le code fourni par VisualStudio en désactivant l'infrastructure de l'application dans les propriété de l'application et coder la porte d'entrée de l'application (ainsi que une sortie si tu veux pas finir avec CTRL-ALT-DELETE).

    L'autre solution est de développer une application spécifique, toujours à lancer au démarrage (un service Windows ?) qui sera capable d'écouter le clavier (toujours avec les hooks) puis d'exécuter ton application au moment voulu. Néanmoins je pense que la première solution est nettement moins compliquée à mettre en place !

  8. #8
    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
    Si tu es fainéant, windows+B place le focus sur la zone de notification, tu fais en sorte de placer ton appli en tant que 1ére visible de la liste, ce qui donnera windows+B, flèche droite, Entrée.

    Sinon je ne connais pas d'autres solutions que celle de Pol63.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Points : 6
    Points
    6
    Par défaut
    Merci pour toutes ces réponses.
    En tant que grand novice en matière de programmation, le hook me fait peur. J'ai fait le tour de quelques sites qui en parle mais j'ai pas bien comprit comment l'utiliser, je maîtrise pas assez bien visual basic. De plus la plus part des tutoriels sont en anglais. J'ai donc retenu la technique de Ez3kiel, qui dans un premier temps me convient parfaitement.
    Je tenterai le hook quand j'aurai plus de temps et de connaissance, je pense que mon application peut intéresser deux trois personnes donc je l'amméliorerai à l'avenir.

    En tout cas merci beaucoup pour votre aide.

    ps : si quelqu'un connait un tuto fort sympathique et compréhensible pour un débutant sur le hook clavier, je suis tout de même preneur, on sait jamais.

Discussions similaires

  1. j'ai un probléme avc un code vb.net aider moi svp
    Par dv-2008 dans le forum VB.NET
    Réponses: 12
    Dernier message: 29/01/2008, 09h20
  2. Réponses: 10
    Dernier message: 11/04/2007, 11h14
  3. Petit problème de compréhension d'une ligne de code
    Par totoc1001 dans le forum Images
    Réponses: 3
    Dernier message: 12/03/2007, 21h44
  4. Réponses: 5
    Dernier message: 18/10/2006, 16h20
  5. [MFC]Problème compréhension code
    Par bitardo dans le forum MFC
    Réponses: 1
    Dernier message: 23/05/2006, 15h56

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