Avatar billede webcon Nybegynder
08. januar 2002 - 13:23 Der er 6 kommentarer og
1 løsning

System Tray

På hvilken måde kan man ligge sit program i \"System Tray\" ?
Avatar billede fladstrand Nybegynder
08. januar 2002 - 13:28 #1
Hejsa

Nedenstående kode skulle gøre det.

mvh
Johnny Fladstrand
---------------------------------------
Option Explicit

DefInt A-Z

Declare Function Shell_NotifyIconA Lib \"SHELL32\" (ByVal dwMessage As Long, _
        lpData As NOTIFYICONDATA) As Long
       
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

Global Const NIM_ADD = &H0& \'constants & flags for NotifyIcons
Global Const NIM_MODIFY = &H1
Global Const NIM_DELETE = &H2
Global Const NIF_MESSAGE = &H1
Global Const NIF_ICON = &H2
Global Const NIF_TIP = &H4
Global Const WM_MOUSEMOVE = &H200
Global NI As NOTIFYICONDATA

Public Sub RemoveTrayIcon()
    Dim result As Long
   
    result = Shell_NotifyIconA(NIM_DELETE, NI) \'removes the icon from the tray
End Sub

Public Sub ChangeTrayIconToolTip(strToolTip As String)
    Dim result As Long
   
    NI.szTip = strToolTip + Chr$(0)
    result = Shell_NotifyIconA(NIM_MODIFY, NI)
End Sub

Public Sub CreateTrayIcon(strToolTip As String)
    Dim result As Long
    NI.cbSize = Len(NI) \'set the length of this structure
    NI.hwnd = frmTrayIcon.TrayIcon.hwnd \'control to receive messages from
    NI.uID = 0 \'uniqueID
    NI.uID = NI.uID + 1
    NI.uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP \'operation flags
    NI.uCallbackMessage = WM_MOUSEMOVE \'recieve messages from mouse activities
    NI.hIcon = frmTrayIcon.TrayIcon.Picture \'the location of the icon to display
    NI.szTip = strToolTip + Chr$(0) \'the tool tip to display
    result = Shell_NotifyIconA(NIM_ADD, NI) \'add the icon to the system tray
End Sub
---------------------------------------
Avatar billede webcon Nybegynder
08. januar 2002 - 13:51 #2
hej fladstrand..!

Når jeg kører programmet får jeg en fejl ved: \"Global Const....\"

/webcon


Avatar billede sjh Nybegynder
08. januar 2002 - 14:14 #3
Hvis du setter alt koden ind som Form1 kode så skal det se sådan ud.


Private Declare Function Shell_NotifyIconA Lib \"SHELL32\" (ByVal dwMessage As Long, _
        lpData As NOTIFYICONDATA) As Long
       
Private 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

Const NIM_ADD = &H0& \'constants & flags for NotifyIcons
Const NIM_MODIFY = &H1
Const NIM_DELETE = &H2
Const NIF_MESSAGE = &H1
Const NIF_ICON = &H2
Const NIF_TIP = &H4
Const WM_MOUSEMOVE = &H200

Private NI As NOTIFYICONDATA
Avatar billede sjh Nybegynder
08. januar 2002 - 14:18 #4

Glem det jeg skræv, du skal tilføje et Module1 og sette koden i Module1.
Avatar billede webcon Nybegynder
08. januar 2002 - 15:49 #5
Kære sjh

Nu har jeg sat ovennævnte kode i et modul i mit program.

Når jeg kører programmet, skal den så automatisk oprette et icon i trayet ? eller skal jeg på en eller anden måde kalde modulen med en funktion ??

/webcon
Avatar billede sjh Nybegynder
08. januar 2002 - 21:15 #6
webcon Prøv at downloade filen her.

http://hjem.get2net.dk/sjh/eksperten/TrayMenu.zip

Avatar billede webcon Nybegynder
09. januar 2002 - 03:47 #7
Nu kører det jo bare perfekt, udmærket.

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