Español
Fuente/ Codesnippets

Abfragen Anlegen Balloon Trayicon

 

TrayIcon con Balloon invertir y abfragen de Andreas Miethe:[CODE]Ab Profano 7.0
#######################
Thema : Tray-Icon
Balloon-Tips
#######################
Andreas Miethe
August 2003
#######################
Balloon-Tips son sólo verfügbar si en el Registry bajo
HKEY_CURENT_USER SoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced
el Valor EnableBalloonTips en 1 es.
Möglicherweise muss el Schlüssel sólo creado se.
#######################
DEF HiWord(1) And(&(1)>>16,$FFFF)
DEF LoWord(1) And(&(1),$FFFF)
DEF GetFileVersionInfoSize(2) ! Versión,GetFileVersionInfoSizeA
DEF GetFileVersionInfo(4) ! Versión,GetFileVersionInfoA
DEF VerQueryValue(4) ! Versión,VerQueryValueA
DEF GetSysColor(1) ! user32,GetSysColor
DEF SetWindowPos(7) ! User32,SetWindowPos
DEF LoadIcon(2) ! User32,LoadIconA
DEF Shell_NotifyIcon(2) ! shell32,Shell_NotifyIconA
DEF RegisterWindowMessage(1) ! user32,RegisterWindowMessageA
DEF SetForegroundWindow(1) ! user32,SetForegroundWindow
DEF GetCursorPos(1) ! user32,GetCursorPos
DEF MapWindowPoints(4) ! user32,MapWindowPoints
DEF XSetTimer(4) ! user32,SetTimer
DEF &WM_USER $0400
DEF &COLOR_BTNFACE 15
DEF &SWP_NOACTIVATE $10
DEF &SWP_NOREDRAW $8
DEF &NIF_ICON $2
DEF &NIF_TIP $4
DEF &NIF_MESSAGE $1
DEF &NIF_INFO $10
DEF &NIM_ADD $0
DEF &NIM_DELETE $2
DEF &NIM_MODIFY $1
DEF &NIM_SETVERSION $4
DEF &NIM_SETFOCUS $3
Icons
DEF &NIIF_ERROR $3
DEF &NIIF_INFO $1
DEF &NIIF_NONE $0
DEF &NIIF_WARNING $2
DEF &NIF_STATE $8
DEF &NIS_HIDDEN $1
DEF &NIS_SHAREDICON $2
DEF &NIN_BALLOONSHOW  $0402
DEF &NIN_BALLOONHIDE  $0403
DEF &NIN_BALLOONTIMEOUT  $0404
DEF &NIN_BALLOONUSERCLICK $0405
DEF &WM_CLOSE $10
DEF &WM_LBUTTONDOWN $0201
DEF &WM_RBUTTONDOWN $0204
DEF &WM_SYSCOMMAND $0112
DEF &SC_RESTORE $F120
DEF &WM_SHELLNOTIFY $0405 &WM_USER + 5 shell notify mensaje
DEF &uID 7777
DEF &NOTIFYICONDATA_V1_SIZE   88  pre-5.0 structure size
DEF &NOTIFYICONDATA_V2_SIZE  488 pre-6.0 structure size
DEF &NOTIFYICONDATA_V3_SIZE  504 6.0+ structure size
Declarar NOTIFYICONDATASIZE&

Proc IsShellVersion

    Declarar Retval&,K$
    Declarar nBufferSize&,nUnUsed&
    Declarar sDLLFile$
    Declarar lpBuffer#,lplpBuffer&,lpBufferLenght&
    sDLLFile$ = Shell32
    nBufferSize& = GetFileVersionInfoSize(addr(sDLLFile$), addr(nUnused&))
    Dim lpBuffer#,nBufferSize&
    GetFileVersionInfo(addr(sDLLFile$),0,nBufferSize&,lpBuffer#)
    k$ = \
    VerQueryValue(lpBuffer#,addr(k$),addr(lplpBuffer&),Addr(lpBufferLenght&))
    RetVal& = Word(lplpBuffer&,10)
    Disponer lpBuffer#
    Volver RetVal&

ENDPROC

El Grösse el NotifyIcon- Struktur es abhängig de el Versión el
Shell32.dll, por lo tanto muss sólo el Versión geprüft se.
IsShellVersion

If @&(0) = 5 Versión = 5

    NOTIFYICONDATASIZE& = &NOTIFYICONDATA_V2_SIZE

ElseIf @&(0) = 6 Versión = 6

    NOTIFYICONDATASIZE& = &NOTIFYICONDATA_V3_SIZE
    Más Versión = antes 5
    NOTIFYICONDATASIZE& = &NOTIFYICONDATA_V1_SIZE

Endif

Declarar Punto#,TB_CREATED&
Declarar InfoText$,InfoTitle$,Tip$,Icon$,RegMessage$
Tip$ = Balloon-Tips © Andreas Miethe * August 2003
InfoText$ = Dieses Tray-Icon reagiert en el rechte como auch en el linke Botón del ratón
InfoText$ = InfoText$ +
+Tip$+chr$(0)
InfoTitle$ = INFO MAX 255 Signo
Icon$ =A
RegMessage$ = IconCreated
Struct Punto = x&, y&
Struct Note  = cbSize&,hWnd&,uID&,uFlags&,uCallbackMessage&,hIcon&,szTip#(128),
dwState&,dwStateMask&,szInfo#(256),uTimeoutAndVersion&,szInfoTitle#(64),
dwInfoFlags&,guidItem#(16)
Declarar Ende&,Note#
SetTrueColor 1
SetErrorlevel 0
Ventana -1000,0 - 0,0Ventana neben el Bildschirm
CLS GetSysColor(&COLOR_BTNFACE)
ShowWindow(%hwnd,0)Ventana verbergen
SetWindowPos(%hwnd,0,0,0,640,480,O(&SWP_NOREDRAW,&SWP_NOACTIVATE))neue Position
Dim Note#,Note
Claro Note#
Note#.cbSize&           = NOTIFYICONDATASIZE&
Note#.hWnd&             = %hwnd
Note#.uID&              = &uID
Note#.hIcon&            = LoadIcon(%hInstance,ADDR(Icon$))
Note#.uFlags&           = Or(Or(Or(&NIF_ICON,&NIF_TIP),&NIF_MESSAGE),&NIF_STATE)
Note#.uCallbackMessage& = &WM_SHELLNOTIFY
Note#.szTip#            = Tip$
Note#.dwState&          = &NIS_SHAREDICON
Note#.dwStateMask&      = Or(&NIS_HIDDEN,&NIS_SHAREDICON)
Note#.uTimeoutAndVersion& = 50$3
normales Icon einfügen
Shell_NotifyIcon(&NIM_ADD, Note#)
Shell_NotifyIcon(&NIM_SETVERSION, Note#)
modifizieren para Balloon-Tips
Note#.uFlags& = &NIF_INFO
Note#.szInfo# = InfoText$
Note#.szInfoTitle# = InfoTitle$
Note#.dwInfoFlags& = &NIIF_INFO
Note#.uTimeoutAndVersion& = 16000TimeOut
Shell_NotifyIcon(&NIM_MODIFY,Note#)
TB_CREATED& = RegisterWindowMessage(ADDR(RegMessage$))
Mensajes del usuario &WM_SHELLNOTIFY,TB_CREATED&,&WM_CLOSE
ShowWindow(%hwnd,0)
settimer 15000

Sinestar encargado Ende&

    Waitinput

    If %wmtimer

        Umweg si MinTimeOut größer como 15 sekunden es
        Killtimer
        Note#.szInfo# = chr$(0)
        Note#.szInfoTitle# = chr$(0)
        Shell_NotifyIcon(&NIM_MODIFY,Note#)
        MessageBox(Tiempo abgelaufen,,0)
        Imprimir Tiempo abgelaufen

    Endif

    If %UMessage = &WM_CLOSE

        Shell_NotifyIcon(&NIM_DELETE,Note#)
        Ende& = 1

    Endif

    If %UMessage = TB_CREATED&Explorer-Crash. Icon neu invertir

        Shell_NotifyIcon(&NIM_ADD,Note#)

    Endif

    If %UMessage = &WM_SHELLNOTIFY

        If &ULParam = &NIN_BALLOONTIMEOUT

            Killtimer
            MessageBox(Tiempo abgelaufen,,0)
            Imprimir Tiempo abgelaufen

        Endif

        If &ULParam = &NIN_BALLOONUSERCLICK

            MessageBox(Clic,,0)
            Imprimir Clic

        Endif

        If &ULParam = &NIN_BALLOONHIDE

            MessageBox(weg,,0)
            Imprimir weg

        Endif

        If &ULParam = &WM_RBUTTONDOWNrechter Mausbutton

            SetForegroundWindow(%hWnd)
            Dim Punto#,Punto
            CreateMenu
            AppendMenu 100,Ventana verbergen
            AppendMenu 101,Ventana zeigen
            Separador
            AppendMenu 102,Ende
            GetCursorPos(Punto#)
            MapWindowPoints(%Desktop,%hwnd,Punto#,1)
            Trackmenu Punto#.x&,Punto#.y&
            Disponer Punto#

        Endif

        If &ULParam = &WM_LBUTTONDOWNlinker Mausbutton

            SetForegroundWindow(%hWnd)
            Dim Punto#,Punto
            CreateMenu
            AppendMenu 200,Linker Button 1
            AppendMenu 201,Linker Button 2
            Separador
            AppendMenu 202,Linker Button 3
            GetCursorPos(Punto#)
            MapWindowPoints(%Desktop,%hwnd,Punto#,1)
            Trackmenu Punto#.x&,Punto#.y&
            Disponer Punto#

        Endif

    Endif

    If MenuItem(100)

        ShowWindow(%hwnd,0)

    ElseIf MenuItem(101)

        SendMessage(%hwnd,&WM_SYSCOMMAND,&SC_RESTORE,0)

    ElseIf MenuItem(102)

        Shell_NotifyIcon(&NIM_DELETE,Note#)
        Ende& = 1

    ElseIf MenuItem(200)

        settimer 15000
        Shell_NotifyIcon(&NIM_MODIFY,Note#)Balloontip Mostrar

    Endif

Wend

Salve, IF.
 
01.07.2005  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

5.999 Views

Untitledvor 0 min.
Paul Glatz13.07.2016
GDL24.08.2014
Ernst03.06.2014
Torsten Boo10.08.2013
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

iF (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie