Enlever une icone quelconque du system tray

cs_Xenon974 Messages postés 3 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 28 juillet 2004 - 20 juil. 2004 à 13:18
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011 - 21 juil. 2004 à 08:54
Bonjour,
Je cherche à enlever une icone du system tray
En fait j'utilise WinVNC et je voudrais que mes utilisateurs
ne puisse pas accéder à l'icone se trouvant près de l'horloge
Le programme lui ne doit pas etre coupé pour me permettre d'utiliser VNC.
Je chercherai une source pour VB5/6
Je vous remercie d'avance.
A voir également:

5 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
20 juil. 2004 à 13:30
Je ne pense pas qu'il soit possible de gérer cela de l'extérieur.
Mais si tu as du courage, VNC étant OpenSource, tu peux toujours récupérer la source et la modifier pour supprimer l'affichage de l'icone dans le systray.

Christophe R.
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
20 juil. 2004 à 13:35
A moins qu'un SetWindowPos avec "swp_hidewindow" en tant que flag ne fonctionne. Mais il te faudra avant tout récupérer un Handle sur la "fenêtre" VNCServer

Christophe R.
0
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
20 juil. 2004 à 22:20
je c pas si c'est possible mais si tu arrive a recuperer le hwnd qui ser au systray de l'application que tu veu kill et bien tu poura enlever l'icon en utilisan cette API Shell_NotifyIcon en fin je pence que sa marchera car je n'est jamais essayer mais dans la theorie je voi pas pr koi sa mercherais pas

"Le difficile c'est ce qui peut-être fait tout de suite. L'impossible, c'est ce qui prend un peu plus de temps.", George Santayana
0
cs_Xenon974 Messages postés 3 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 28 juillet 2004
21 juil. 2004 à 06:15
J'ai fait cela pour supprimer l'icone :

Public Function GethWndFromTitleAndDelete(ByVal Word As String)
  For hwnd = 1 To 2000 'generalement les handle ne depassent pas 2000
    If UCase(Left(TitreFenetre(hwnd), Len(Word))) = UCase(Word) Then
      MsgBox TitreFenetre(hwnd) & vbCrLf & "Handle: " & hwnd
      delSystray (hwnd)
    End If
  Next hwnd
End Function

Public Declare Function GetWindowText& Lib "user32" Alias "GetWindowTextA" _
(ByVal hwnd&, ByVal lpString As String, ByVal aint&)

Public Function TitreFenetre(ByVal hwnd As Long) As String
  Dim TitleText As String
  Dim TxtLength As Long
  TitleText = String(255, Chr(0))
  TxtLength = 255
  ret = GetWindowText(hwnd, TitleText, TxtLength)
  TitreFenetre = Mid(TitleText, 1, ret)
End Function


La fonction est appelée de cette manière :
Private Sub Command2_Click()
  GethWndFromTitleAndDelete "WinVNC Tray Icon"
End Sub


Et la suppression je l'ai effectuée de la manière suivante :

Option Explicit
Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As IconeTray) As Boolean
Public IconeT As IconeTray

Public 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 * 14
End Type

Public Const NIM_DELETE = &H2

Public Sub delSystray(dHwnd As Long)
  IconeT.cbSize = Len(IconeT)
  IconeT.hwnd = dHwnd
  IconeT.uID = 1
  Shell_NotifyIcon NIM_DELETE, IconeT
End Sub


En fait ce dernier code est tiré d'un autre programme que j'ai réalisé, lui il fonctionne car j'enlève l'icone de mon propre programme VB. J'ai essayé de passer le Hwnd que j'ai récupéré à IconeT.hwnd mais cela ne semble pas fonctionner.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_NoMitsu Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 février 2011
21 juil. 2004 à 08:54
Je pence qu'il ne sagie pas du bon hwnd mais je peut me tromper

"Le difficile c'est ce qui peut-être fait tout de suite. L'impossible, c'est ce qui prend un peu plus de temps.", George Santayana
0
Rejoignez-nous