begin process at 2010 02 10 08:53:35
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Exécution

 > SYSTRAY, TOUT CE QU'IL Y A DE PLUS SIMPLE !!!

SYSTRAY, TOUT CE QU'IL Y A DE PLUS SIMPLE !!!


 Information sur la source

Note :
5,58 / 10 - par 12 personnes
5,58 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Exécution Niveau :Initié Date de création :16/01/2002 Date de mise à jour :16/01/2002 22:46:14 Vu / téléchargé :8 650 / 1 213

Auteur : coolcrash

Ecrire un message privé
Site perso
Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

 Description

C'est très simple à comprendre, juste à regarder le code.

Et pour le faire fontionner en arrière plan vous n'avez qu'a mettre un timer.

Parter le timer quand vous voulez faire tourné votre applic en arrière plan à fin qu'il fonction seule.

Pour les paresseux j'ai join un zip a ma source.

Compatible Vb6.0 non testé avec Vb5.0

Source

  • Option Explicit
  • Private Type IconeTray
  • cbSize As Long 'Taille de l'icône (en octets)
  • hWnd As Long 'Handle de la fenêtre chargée de recevoir les messages envoyés lors des évènements sur l'icône (clics, doubles-clics...)
  • uID As Long 'Identificateur de l'icône
  • uFlags As Long
  • uCallbackMessage As Long 'Messages à renvoyer
  • hIcon As Long 'Handle de l'icône
  • szTip As String * 64 'Texte à mettre dans la bulle d'aide
  • End Type
  • Dim IconeT As IconeTray
  • 'Constantes nécessaires
  • Private Const AJOUT = &H0
  • Private Const MODIF = &H1
  • Private Const SUPPRIME = &H2
  • Private Const MOUSEMOVE = &H200
  • Private Const MESSAGE = &H1
  • Private Const Icone = &H2
  • Private Const TIP = &H4
  • Private Const DOUBLE_CLICK_GAUCHE = &H203
  • Private Const BOUTON_GAUCHE_POUSSE = &H201
  • Private Const BOUTON_GAUCHE_LEVE = &H202
  • Private Const DOUBLE_CLICK_DROIT = &H206
  • Private Const BOUTON_DROIT_POUSSE = &H204
  • Private Const BOUTON_DROIT_LEVE = &H205
  • 'API nécessaire
  • Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As IconeTray) As Boolean
  • Private Sub Check1_Click()
  • If Check1.Value = 1 Then Form1.Hide
  • End Sub
  • Private Sub Form_Load()
  • 'Préparation de la variable IconeT
  • IconeT.cbSize = Len(IconeT) 'Taille de l'icône en octet
  • IconeT.hWnd = Me.hWnd 'Handle de l'application (pour qu'elle reçoive les messages envoyés lors d'un clic, double-clic...
  • IconeT.uID = 1& 'Identificateur de l'icône
  • IconeT.uFlags = Icone Or TIP Or MESSAGE
  • IconeT.uCallbackMessage = MOUSEMOVE 'Renvoyer les messages concernant l'action de la souris
  • IconeT.hIcon = Image1.Picture 'Mettre en icône l'image qui est dans le contrôle "Image1"
  • IconeT.szTip = "Icône dans le system tray" & Chr$(0) 'Texte de la bulle d'aide
  • 'Appel de la fonction pour mettre l'icône dans le système tray
  • Shell_NotifyIcon AJOUT, IconeT
  • Me.Show 'Cache la fenêtre
  • App.TaskVisible = False 'Retire le bouton de l'application de la barre
  • 'des tâches
  • menu.Visible = False
  • End Sub
  • Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  • Static rec As Boolean, msg As Long
  • 'Se produit lorsque l'utilisateur agit avec la souris sur
  • 'l'icône placée dans le système tray
  • msg = X / Screen.TwipsPerPixelX
  • If rec = False Then
  • rec = True
  • Select Case msg 'Différentes possibilité d'action
  • Case DOUBLE_CLICK_GAUCHE: 'mettez
  • menuAproposDe_Click 'ici
  • Case BOUTON_GAUCHE_POUSSE: 'ce
  • Case BOUTON_GAUCHE_LEVE: 'que
  • Case DOUBLE_CLICK_DROIT: 'vous
  • Case BOUTON_DROIT_POUSSE: 'voudrez
  • Case BOUTON_DROIT_LEVE: 'qu'il se passe
  • PopupMenu menu, , , , menuAproposDe 'fait apparaitre le menu
  • '"A propos de" apparaitra en gras
  • End Select
  • rec = False
  • End If
  • End Sub
  • Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  • 'Refait appel à l'API pour retirer l'icône du système tray
  • 'lorsque le programme se ferme, en utilisant cette fois la constante SUPPRIME
  • 'au lieu de AJOUT
  • IconeT.cbSize = Len(IconeT)
  • IconeT.hWnd = Me.hWnd
  • IconeT.uID = 1&
  • Shell_NotifyIcon SUPPRIME, IconeT
  • End Sub
  • Private Sub Menu_Click()
  • 'C'est ce menu et son contenu qui apparait lorsqu'on clique
  • 'sur l'icône
  • End Sub
  • Private Sub menuAproposDe_Click()
  • MsgBox "Cette source est distribué gratuitement et avec tout les droits d'auteur" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & " Vive le COde Ouvert", vbOKOnly, "Vive le cOde Ouvert"
  • End Sub
  • Private Sub Quitter_Click()
  • Unload Me 'retire la fenêtre
  • End Sub
  • Private Sub Restor_Click()
  • Check1.Value = 0
  • Form1.Show
  • End Sub
Option Explicit

Private Type IconeTray
    cbSize As Long      'Taille de l'icône (en octets)
    hWnd As Long        'Handle de la fenêtre chargée de recevoir les messages envoyés lors des évènements sur l'icône (clics, doubles-clics...)
    uID As Long         'Identificateur de l'icône
    uFlags As Long
    uCallbackMessage As Long    'Messages à renvoyer
    hIcon As Long               'Handle de l'icône
    szTip As String * 64        'Texte à mettre dans la bulle d'aide
End Type
Dim IconeT As IconeTray


'Constantes nécessaires
Private Const AJOUT = &H0
Private Const MODIF = &H1
Private Const SUPPRIME = &H2
Private Const MOUSEMOVE = &H200
Private Const MESSAGE = &H1
Private Const Icone = &H2
Private Const TIP = &H4

Private Const DOUBLE_CLICK_GAUCHE = &H203
Private Const BOUTON_GAUCHE_POUSSE = &H201
Private Const BOUTON_GAUCHE_LEVE = &H202
Private Const DOUBLE_CLICK_DROIT = &H206
Private Const BOUTON_DROIT_POUSSE = &H204
Private Const BOUTON_DROIT_LEVE = &H205

'API nécessaire
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As IconeTray) As Boolean


Private Sub Check1_Click()
If Check1.Value = 1 Then Form1.Hide
End Sub

Private Sub Form_Load()
    
'Préparation de la variable IconeT
IconeT.cbSize = Len(IconeT) 'Taille de l'icône en octet
IconeT.hWnd = Me.hWnd       'Handle de l'application (pour qu'elle reçoive les messages envoyés lors d'un clic, double-clic...
IconeT.uID = 1&             'Identificateur de l'icône
IconeT.uFlags = Icone Or TIP Or MESSAGE
IconeT.uCallbackMessage = MOUSEMOVE     'Renvoyer les messages concernant l'action de la souris
IconeT.hIcon = Image1.Picture   'Mettre en icône l'image qui est dans le contrôle "Image1"
IconeT.szTip = "Icône dans le system tray" & Chr$(0)    'Texte de la bulle d'aide

'Appel de la fonction pour mettre l'icône dans le système tray
Shell_NotifyIcon AJOUT, IconeT


Me.Show    'Cache la fenêtre
App.TaskVisible = False     'Retire le bouton de l'application de la barre
                            'des tâches
menu.Visible = False
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static rec As Boolean, msg As Long

'Se produit lorsque l'utilisateur agit avec la souris sur
'l'icône placée dans le système tray

msg = X / Screen.TwipsPerPixelX
If rec = False Then
    rec = True
    Select Case msg     'Différentes possibilité d'action
        Case DOUBLE_CLICK_GAUCHE:   'mettez
            menuAproposDe_Click     'ici
        Case BOUTON_GAUCHE_POUSSE:  'ce
        Case BOUTON_GAUCHE_LEVE:    'que
        Case DOUBLE_CLICK_DROIT:    'vous
        Case BOUTON_DROIT_POUSSE:   'voudrez
        Case BOUTON_DROIT_LEVE:     'qu'il se passe
            PopupMenu menu, , , , menuAproposDe     'fait apparaitre le menu
            '"A propos de" apparaitra en gras
    End Select
    rec = False
End If

End Sub


Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

'Refait appel à l'API pour retirer l'icône du système tray
'lorsque le programme se ferme, en utilisant cette fois la constante SUPPRIME
'au lieu de AJOUT

IconeT.cbSize = Len(IconeT)
IconeT.hWnd = Me.hWnd
IconeT.uID = 1&
Shell_NotifyIcon SUPPRIME, IconeT

End Sub


Private Sub Menu_Click()

'C'est ce menu et son contenu qui apparait lorsqu'on clique
'sur l'icône

End Sub

Private Sub menuAproposDe_Click()

    MsgBox "Cette source est distribué gratuitement et avec tout les droits d'auteur" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "                                      Vive le COde Ouvert", vbOKOnly, "Vive le cOde Ouvert"

End Sub

Private Sub Quitter_Click()

Unload Me   'retire la fenêtre

End Sub


Private Sub Restor_Click()
Check1.Value = 0
Form1.Show

End Sub
 

 Conclusion

Amusé vous bien !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip ICÔNE ASSOCIÉE
Source avec Zip CALCULER LE RÉPERTOIR PRÉCÉDANT
Source avec Zip COMPRESSION AVEC ZLIB
Source avec Zip Source avec une capture CONVERTISSEUR DÉCIMAL - HEXADÉCIMAL
Source avec Zip COPIER, COUPER, COLLER ET VIDER LE CLIPBOARD EN DÉSACTIVANT...

 Sources de la même categorie

Source avec Zip APPEL DE POINTEUR DE FONCTIONS - API SANS LES DECLARER par Renfield
Source avec Zip Source avec une capture RETROUVER LES DONNÉES PUBLIQUES DANS UNE BIBLIOTHÈQUE par VBsearch
Source avec Zip Source avec une capture CRÉER VOTRE PROGRAMME D'INSTALLATION par VBsearch
Source avec Zip Source avec une capture BART VOTRE BUREAU DANS UNE BARRE par alfamick
Source avec Zip Source avec une capture Source .NET (Dotnet) SIMPLE SHUTDOWN SCHEDULER : ARRÊTS PLANIFIÉS (LOCAL OU REMOT... par violent_ken

Commentaires et avis

Commentaire de max12 le 17/01/2002 02:04:19 administrateur CS

C'est le code que j'ai déposer l'autre jours exactement pareil et tu le remet en double tout simplement, c'est exactement mon code

@++ Polueur

Commentaire de coolcrash le 18/01/2002 14:16:31

Ben si c'é ton code ben je l'ai trouver null part sur ce site lors de ma recherche, je l'ai trouver sur un autre site et j'ai adapté le code un peu.

Et le but de ce site est de mettre le plus de code source possible, afin qu'il y est plein d'example pour aidé les débutants ou les plus expérimentés à sauver du temps en utilisant un CODE PRÉFABRIQUÉ ET FONCTIONNEL.

À la place me faire perdre mon temps à répondre à t'est petit commentaire inutile, va voir ailleur si j'y suis.

Tout ce qui est sur le web doit être disponible rapidement et facilement et surtout gratuitement.

@++

Commentaire de max12 le 19/01/2002 02:13:54 administrateur CS

Tu pourrais au moin dire la vériter au lieux de me mentir en plein commentaire

Commentaire de sbiron le 08/02/2002 18:31:09

Ok, la virer pas sa en baggarre c juste une source ;

Sbiron
@++

Commentaire de neojoce le 28/02/2002 03:44:15

OK SSSSSSSSSSSHHHHHHHHHHHHHHHTTTTTTTTTTTTTTTTTTTT !!!!!!!!!!!!

C pas bien la copie, mais bon, coolcrash a quand meme raison ...

Nice comme code

Je comprend aussi la reaction de max12

Commentaire de ptiJune le 23/04/2002 09:50:03

Moi je dis merci aux deux. A celui qui est à l'origine de ce code et à celui qui l'as mis sur ce site. Merci à tous les deux. Arretez de vous prendre la tête. Moi je trouve ce source formidable. Alors qu'il soit formidable pour vous deux.

@++

Commentaire de Leirn le 14/05/2002 18:44:28

le plus gros avantage de ce code par rapport aux deux autres systray présents sur ce site: PAS BESOIN DE DL LE ZIP ;)

et oui, sorry, je suis feignant...

Commentaire de Leirn le 14/05/2002 19:15:46

ah si: defauts....

retire tout ce ki ne fait pas partie directement du Sheel_Notify, cad retire le check box ki ne veut rien dire pour ceux ki n'utilisent pas ton prog, retire tout ce ki est restor ou autre ki appartiennent a des menus ke tous le monde ne possede pas, et rajoute seulement
Sub Restor()

le but de ce code est de pouvoir afficher une icone ds la tray bar et de pouvoir effectuer des actions dessus, c a ceux ki l'adapterons a leur projet de decider si le me.show doit avoir lui ds Case DOUBLE_CLICK_GAUCHE ou ds un popup...

donne juste les cases, le notifyicon ajout ds un sub mettre en tray et le notify supprime ds une sub supprime tray.

ensuite celui ki le voudra des le lancement le mettra ds form_load, mais c pas necessairement le cas de tt le monde.

ton code doit etre plus modulable pour la personne ki va s'en servir apres

Commentaire de philobedo le 25/07/2002 10:55:25

Je ne sais pas de qui est ce code mais il vraiment génial !
Merci au réalisateur !

Philobedo.

Commentaire de AnAcOnDa le 07/11/2002 18:42:38

*AheM*
Dans tes commentaires ..
Me.Show    'Cache la fenêtre

t'en es sur ? :)

Commentaire de Tatoon le 23/11/2003 20:20:30

Pourriez pas faire un ptit soft qui vous corrige les fautes de français... c'est honteux...

Commentaire de chour03 le 05/02/2004 02:07:11

lol ! Je suis d'accord mais t'aurais pu éviter d'en faire tatoon... Surtout pour dire ça... Merci pour VOTRE code les mecs sinon. Un truc ki sert, c'est cool.

Commentaire de Tatoon le 05/02/2004 11:11:46

trololijk !!

bah dis moi où !?!


Sinon un ptit souci, si explorer plante... les icons du Systray sont effacés pour la majorité... seuls certains réapparaissent... y aurait-il moyen d'en faire autant avec cette source ? (j'imagine que oui mais comment exactement... :p)

Commentaire de ksam007 le 13/02/2004 12:16:46

Quelque soit l'auteur merci de m'avoir éclairer

Commentaire de FRH le 31/03/2004 09:51:54

Le code est génial et fonctionne nickel. Cependant, je ne comprends pas pourquoi (ou comment) le double click est détecté dans le mousemove. Pouvez-vous m'éclairer? ca m'a l'air mystique!

Commentaire de cosmic le 16/05/2005 00:26:43

dans la fin du code il faut remplacer

*Check1.Value = 0* par *Check1.Value = 2*

Sinon la form ne se restore pas complètement!!!

Commentaire de soldier8514 le 07/08/2005 10:33:22

ça affiche le menu nimporte où sur le Form des que l'on veut garder celui ci visible _ bref ça marche que kan on a  caché le form ...   c pas vraiment terrible pour ceux qui veulent l'icone ET leur application visible

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales