Avatar billede gnukki Nybegynder
17. august 2005 - 21:16 Der er 4 kommentarer og
1 løsning

System Tray

Hej eksperter!

Jeg er ved at rode med at have et program til at vise et tip nede på system tray. Det tip som vises defineres i ".szTip", øjeblikket bare med en fast tekst. Mit spørgssmål er om jeg kan lægge denne defination i en variabel, som jeg senere kan ændre via en funktion.

Jeg vil i samme anledning spørge hvordan jeg sender en besked til system tray, så beskeden vil fremkomme i en bobbel..

Med venlig hilsen
Christian

Jeg bruger følgende kode:

FORM1
      Private Sub Form_Load()
      'the form must be fully visible before calling Shell_NotifyIcon
      Me.Show
      Me.Refresh
      With nid
        .cbSize = Len(nid)
        .hwnd = Me.hwnd
        .uId = vbNull
        .uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
        .uCallBackMessage = WM_MOUSEMOVE
        .hIcon = Me.Icon
        .szTip = Text1.Text & vbNullChar
      End With
      Shell_NotifyIcon NIM_ADD, nid
      End Sub

      Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
      'this procedure receives the callbacks from the System Tray icon.
      Dim Result As Long
      Dim msg As Long
      'the value of X will vary depending upon the scalemode setting
      If Me.ScaleMode = vbPixels Then
        msg = X
      Else
        msg = X / Screen.TwipsPerPixelX
      End If
      Select Case msg
        Case WM_LBUTTONUP        '514 restore form window
        Me.WindowState = vbNormal
        Result = SetForegroundWindow(Me.hwnd)
        Me.Show
        Case WM_LBUTTONDBLCLK    '515 restore form window
        Me.WindowState = vbNormal
        Result = SetForegroundWindow(Me.hwnd)
        Me.Show
        Case WM_RBUTTONUP        '517 display popup menu
        Result = SetForegroundWindow(Me.hwnd)
        Me.PopupMenu Me.mPopupSys
      End Select
      End Sub


      Private Sub Form_Resize()
      'this is necessary to assure that the minimized window is hidden
      If Me.WindowState = vbMinimized Then Me.Hide
      End Sub

      Private Sub Form_Unload(Cancel As Integer)
      'this removes the icon from the system tray
      Shell_NotifyIcon NIM_DELETE, nid
      End Sub

      Private Sub mPopExit_Click()
      'called when user clicks the popup menu Exit command
      Unload Me
      End Sub

      Private Sub mPopRestore_Click()
      'called when the user clicks the popup menu Restore command
      Dim Result As Long
      Me.WindowState = vbNormal
      Result = SetForegroundWindow(Me.hwnd)
      Me.Show
      End Sub

MODULE1
    'user defined type required by Shell_NotifyIcon API call
      Public Type NOTIFYICONDATA
      cbSize As Long
      hwnd As Long
      uId As Long
      uFlags As Long
      uCallBackMessage As Long
      hIcon As Long
      szTip As String * 64
      End Type

      'constants required by Shell_NotifyIcon API call:
      Public Const NIM_ADD = &H0
      Public Const NIM_MODIFY = &H1
      Public Const NIM_DELETE = &H2
      Public Const NIF_MESSAGE = &H1
      Public Const NIF_ICON = &H2
      Public Const NIF_TIP = &H4
      Public Const WM_MOUSEMOVE = &H200
      Public Const WM_LBUTTONDOWN = &H201    'Button down
      Public Const WM_LBUTTONUP = &H202      'Button up
      Public Const WM_LBUTTONDBLCLK = &H203  'Double-click
      Public Const WM_RBUTTONDOWN = &H204    'Button down
      Public Const WM_RBUTTONUP = &H205      'Button up
      Public Const WM_RBUTTONDBLCLK = &H206  'Double-click

      Public Declare Function SetForegroundWindow Lib "user32" _
      (ByVal hwnd As Long) As Long
      Public Declare Function Shell_NotifyIcon Lib "shell32" _
      Alias "Shell_NotifyIconA" _
      (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

      Public nid As NOTIFYICONDATA
Avatar billede sjh Nybegynder
18. august 2005 - 00:19 #1
Avatar billede gnukki Nybegynder
19. august 2005 - 09:04 #2
hvordan sender du en besked til tray så beskeden fremkommer i en bobbel?!
Avatar billede sjh Nybegynder
19. august 2005 - 13:28 #3
ja, den kan mi version ikke :D
men brug den her : http://vbnet.mvps.org/index.html?code/subclass/shellnotifyballoontip.htm
Avatar billede sjh Nybegynder
19. august 2005 - 15:30 #4
Fik lige lavet en ny version af min vbTrayIcon :D
http://home.get2net.dk/sjh/eksperten/640986/vbTrayIconBalloon.zip
Avatar billede gnukki Nybegynder
09. september 2005 - 12:01 #5
Hej og undskyld forsinkelsen.

Jeg var på ferie så, men her er dine point

Tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester