Français
Source/ Codesnippets

NotifyIconDataA, NotifyIconDataW, TrayIcon, SysIcon

 

Georg
Teles
Mir était la fois wieder important, WideStrings à cela TrayIcon transfert trop peut, principale à cause de kyrillischem Text daher ici un Codesnippet en supplément - qui kyrillische Text peux mittels cette Unit  [...]  erzeugt et ici verwendet volonté (habs auskommentiert)
'###############################################
'#                                             #
'# TrayIcon mittels NOTIFYICONDATAA/W erzeugen #
'#                                             #
'#          Georg Teles am 21.09.2020          #
'#                                             #
'###############################################
'$U lat2cyr.pcu = l2cPCU. ' Unit wird nécessaire, um kyrillischen Text trop erzeugen
Déclarer OldWndProc&, ico&, ico2&, e%
'-------------# Definitionen
Def GetWindowLong(2)!"User32","GetWindowLongA"
Def SetWindowLong(3)!"User32","SetWindowLongA"
Def CallWindowProc(5)!"User32","CallWindowProcA"
Def Shell_NotifyIconA(2)!"SHELL32","Shell_NotifyIconA"'ANSI
Def Shell_NotifyIconW(2)!"SHELL32","Shell_NotifyIconW"'WIDE
'-------------# NotifyIcon Konstanten
Def &TRAYMSG $500
Def &NIM_ADD $0
Def &NIM_MODIFY $1
Def &NIM_DELETE $2
Def &NIF_MESSAGE $1
Def &NIF_ICON $2
Def &NIF_TIP $4
'-------------# Strukturen
Struct NIDataA = cbSize&, hWnd&, uID&, uFlags&, uCallbackMessage&, hIcon&, szTip$(128)'reservierte Taille = 128 marque
Struct NIDataW = cbSize&, hWnd&, uID&, uFlags&, uCallbackMessage&, hIcon&, szTip$(256)'nécessaire doppelte Taille comment ANSI daher = 256 chez 128 marque
'-------------# Programme
Set("Fastmode", 1)' Avancé Messages
Set("TrueColor",1)
Windowtitle "NotifyIconData"
Fenêtre Style 2+4+8+16+512
Fenêtre 355,282
ico& = Créer("hIcon",Par$(0),0)' Icon erwünscht ?
SendMessage(%HWnd,$80,1,ico&)' Icon mettons
'SetWindowLong(%HWnd,-16,$92CE0000) ' Fensterstil alternativ mettons = derslebe comment 2+4+8+16 s.o. mais OHNE 512 !
'-------------# NOTIFYICON pour %HWnd erzeugen ! Beispiel 3 Icônes
Déclarer NID#, NID2#, NID3#
'-------------# ICON #1
Faible NID#, NIDataA' ANSI
NID#.cbSize& = SizeOf(NID#)
NID#.hWnd& = %hWnd
NID#.uID& = 0' ID #0 !
NID#.uFlags& = &NIF_MESSAGE | &NIF_ICON | &NIF_TIP
NID#.uCallbackMessage& = &TRAYMSG
NID#.hIcon& = ico&
NID#.szTip$ = "Ich suis Icon #1 !"+Chr$(0)
Shell_NotifyIconA(&NIM_ADD,NID#)' Erzeuge Icon #1
'-------------# ICON #2
Faible NID2#, NIDataA' ANSI
NID2#.cbSize& = SizeOf(NID2#)
NID2#.hWnd& = %hWnd
NID2#.uID& = 1' ID #1 !
NID2#.uFlags& = &NIF_MESSAGE | &NIF_ICON | &NIF_TIP
NID2#.uCallbackMessage& = &TRAYMSG
NID2#.hIcon& = ico&
NID2#.szTip$ = "Ich suis Icon #2 !"+Chr$(0)
Shell_NotifyIconA(&NIM_ADD,NID2#)' Erzeuge Icon #2
'-------------# ICON #3
Faible NID3#, NIDataW' WIDE
NID3#.cbSize& = SizeOf(NID3#)
NID3#.hWnd& = %hWnd
NID3#.uID& = 2' ID #2 !
NID3#.uFlags& = &NIF_MESSAGE | &NIF_ICON | &NIF_TIP
NID3#.uCallbackMessage& = &TRAYMSG
NID3#.hIcon& = ico&
NID3#.szTip$ = ansi2wideFAST("Ich suis Icon #3 !"+Chr$(0))

Proc ansi2wideFAST

    Paramètres text$
    Déclarer textneu$

    WhileLoop 0,Len(text$)-1

        textneu$ = textneu$+Mid $(text$,&loop+1,1)+Chr$(0)

    Endwhile

    Retour textneu$

ENDPROC

' lat2cyr.pcu Unit wird nécessaire !
'NID3#.szTip$ = l2cPCU.l2l("ein Gemischter Text - ")+l2cPCU.l2c("-Eto nebol-m-soj test <>|\q!§$%&/()=´'?^@")+l2cPCU.l2l(" plus Text"+Chr$(0))
Shell_NotifyIconW(&NIM_ADD,NID3#)' Erzeuge Icon #3
'-------------# WindowPROC / Auswertung qui Icônes

Proc WindowProc

    Paramètres hWnd&, Message&, wParam&, lParam&

    Si Message& = &TRAYMSG' Message auffangen

        ' alternativ ID des Icônes vorschalten mittels wParam& = ID qui Icônes

        Si lParam& = $201

            imprimer "links 1x angeklickt sur Icon ID"+Str$(wParam&)

        ElseIf lParam& = $203

            imprimer "links DBL-Klick sur Icon ID"+Str$(wParam&)

        ElseIf lParam& = $204

            imprimer "rechts 1x angeklickt sur Icon ID"+Str$(wParam&)

        ElseIf lParam& = $206

            imprimer "rechts DBL-Klick sur Icon ID"+Str$(wParam&)

        EndIf

    EndIf

    Retour CallWindowProc(OldWndProc&, hWnd&, Message&, wParam&, lParam&)

ENDPROC

OldWndProc& = GetWindowLong(%hWnd,-4)' original WndProc Sauver
SetWindowLong(%hWnd,-4,ProcAddr("WindowProc",4))' WindowProc zuweisen
' Icon #1 effacer, erzeugen, changement
var btk& = Créer("Button",%hWnd,"KILL #1",100,100,100,20)
var bts& = Créer("Button",%hWnd,"CREATE #1",100,130,100,20)
var btu& = Créer("Button",%hWnd,"UPDATE #1",100,160,100,20)

WhileNot e%

    Waitinput

    Si ((%Key = 2) | (%Key = 27))

        Inc e%

    EndIf

    ' Icon #1 effacer, erzeugen, changement

    Si Clicked(btk&)

        Shell_NotifyIconA(&NIM_DELETE,NID#)' Effacer

    ElseIf Clicked(bts&)

        Shell_NotifyIconA(&NIM_ADD,NID#)' Erzeugen

    ElseIf Clicked(btu&)

        NID#.szTip$ = "Ich suis Icon #1, l'heure ist: "+Time $(0)+»+Time $(1)+Chr$(0)
        Cas ico2&:DeleteObject ico2&
        ico2& = Créer("hIcon",Par$(0),1)
        NID#.hIcon& = ico2&' un d'autre Icon !
        Shell_NotifyIconA(&NIM_MODIFY,NID#)' Aktualisieren

    EndIf

Endwhile

SetWindowLong(%hWnd,-4,OldWndProc&)' original WndProc wiederherstellen
Shell_NotifyIconA(&NIM_DELETE,NID#)' lösche Icon #1
Shell_NotifyIconA(&NIM_DELETE,NID2#)' lösche Icon #2
Shell_NotifyIconA(&NIM_DELETE,NID3#)' lösche Icon #3
SetFocus(%hWnd)
DeleteObject ico&, ico2&
DisPose NID#, NID2#, NID3#

Grüße
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

21.09.2020  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.638 Views

Untitledvor 0 min.
Georg Teles vor 27 Tagen
H.Brill03.08.2024
Stephan Sonneborn05.07.2021
ByteAttack21.01.2021
plus...

Themeninformationen

cet Thema hat 1 participant:

Georg Teles (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie