Oppure

Loading
15/07/08 12:26
alebird
raga prima di postare su pierotofy.it ho cercato tra i post e c'e gia un post : "trayicon" pero i codici che mostra per far diventare il programma un trayicon non mi funzionano.. forse voi mi potreste far capire meglio :asd:
aaa
15/07/08 12:44
M@d_Hacker
In un modulo..

Option Explicit
'Costanti----------------------------------------------------------------------------------------------
Private Const NIM_ADD = &H0                 'Aggiunge un'icona
Private Const NIM_MODIFY = &H1              'Modifica un'icona
Private Const NIM_DELETE = &H2              'Elimina un'icona
Private Const NIF_MESSAGE = &H1             'Per modificare il membro uCallBackMessage
Private Const NIF_ICON = &H2                'Per modificare l'icona
Private Const NIF_TIP = &H4                 'Per modificare il testo del tooltip
Private Const WM_MOUSEMOVE = &H200
Private Const WM_LBUTTONDOWN = &H201        'Evento Click tasto sinistro
Private Const WM_LBUTTONDBLCLK = &H203      'Doppio clic con il tasto sinistro
Private Const WM_RBUTTONDOWN = &H204        'Evento Click tasto destro
Private Const WM_RBUTTONDBLCLK = &H206      'Doppio clic con il tasto destro
'Tipi---------------------------------------------------------------------------------------------------
Private Type NOTIFYICONDATA
    cbSize As Long              ' dimensioni della struttura
    hwnd As Long                ' handle della finestra padre
    uId As Long                 ' utilizzato solo con più icone associate alla medesima applicazione
    uFlags As Long              ' Flag
    uCallBackMessage As Long    ' gestore delle notifiche
    hIcon As Long               ' handle dell'icona
    szTip As String * 64        ' testo del tooltip
End Type
'Dll---------------------------------------------------------------------------------------------------------------
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
'******************************************************************************************************
'Variabili
Dim Nid As NOTIFYICONDATA
Dim IsBackGround As Boolean

Public Sub InitNotifyIcon(ByVal Frm As Form)
    Nid.cbSize = Len(Nid)
    Nid.hwnd = Frm.hwnd
    Nid.uId = 0
    Nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    Nid.uCallBackMessage = WM_MOUSEMOVE     'Messaggio di notifica inviato alla finestra
    Nid.hIcon = Frm.Icon
    Nid.szTip = Frm.Caption + vbNullChar
    Shell_NotifyIcon NIM_ADD, Nid
End Sub

Public Sub ChangeTooltipText(ByVal Text As String)
    Nid.szTip = Text & vbNullChar
    Shell_NotifyIcon NIM_MODIFY, Nid
End Sub

Public Sub DestroyNotifyIcon()
    Shell_NotifyIcon NIM_DELETE, Nid
End Sub

Public Sub BackGround(ByVal Frm As Form)
    IsBackGround = True
    Call CloseWindow(Frm.hwnd)
    Frm.Hide
End Sub

Public Sub Handler(ByVal Frm As Form, ByVal X As Single)
    'Da chiamare in MouseMove  Handler(oggetto form,coordinata x dell'evento MouseMove)
    'NB: La scalemode del form deve essere settata in 1-Twip
    If IsBackGround Then
        Dim Msg As Long
        Msg = Frm.ScaleX(X, Frm.ScaleMode, vbPixels)
        Select Case Msg
            Case WM_LBUTTONDOWN
                '***
            Case WM_LBUTTONDBLCLK
                IsBackGround = False
                Frm.WindowState = vbNormal
                Frm.Show
            Case WM_RBUTTONDOWN
                '***
            Case WM_RBUTTONDBLCLK
                '***
        End Select
    End If
End Sub


In un cmd..

Call BackGround(Me)
aaa