| |
|
|
Rolf Koch | Huhu Aus hier ya gepostetem Grund nutze Yo una alte Rutina y no el fertigen Sachen des Trayicons en un Projekt. Lo va por lo tanto, daß lo a damals ging, por Message a überprüfen, si el Ratón encima el Trayicon verweilt. Como geschrieben: Ging lo früher siempre, como el UserMessage (siehe Code) 1234 siempre entonces eintrat, si uno con el Mauszeiger encima el Icon verweilte y esta otra vez en 0 war, sobald uno lo verließ. Seht Ihr una Fehler en Bezug el Problema? Hier una rápidamente extrahierter Code en el problema darzustellen.
Def LoadIcon(2) !"USER32","LoadIconA"
DEF ExtractIcon(3) !"SHELL32","ExtractIconA"
Def GetClassLong(2) !"USER32","GetClassLongA"
Def GetCursorPos(1) !"USER32","GetCursorPos"
Def ShellNotify(2) !"SHELL32","Shell_NotifyIconA"
Def SetForegroundWindow(1) !"USER32","SetForegroundWindow"
Def GetDoubleClickTime(0) !"USER32","GetDoubleClickTime"
Def Sleep2(1) !"KERNEL32","Sleep"
Declarar NIDATA#,Pos#,ic2#,ende%,icondll&,test4&
dim nidata#,100
Dim ic2#,100
Proc SetNewTip
Parámetros t$
String NIDATA#,24=t$+Chr$(0)
ShellNotify(1,NIDATA#)'NIM_Modify
ENDPROC
Proc SetNewIcon
Parámetros name$
declarar icon_handle&
String ic2#,0=name$
icon_handle& = loadicon(icondll&,ic2#)' Handle des Icons
Largo NIDATA#,20 = icon_handle&
ShellNotify(1,NIDATA#)'NIM_Modify
ENDPROC
Proc SetIcon
Parámetros name$
declarar icon_handle&
String ic2#,0=name$
icon_handle& = ExtractIcon(%hInstance,ic2#,0)
'icon_handle&=loadicon(0,ic2#)' Handle des Icons
Largo NIDATA#,20 = icon_handle&
ShellNotify(1,NIDATA#)'NIM_Modify
ENDPROC
Proc CreateTrayIcon
Largo NIDATA#, 0 = 88' Größe el Struktur
Largo NIDATA#, 4 = %hwnd' Handle des Profanfensters
Largo NIDATA#, 8 = 7777' unwichtig,ergibt &wparam en Abfrage,kann auch 0 ser
Largo NIDATA#, 12= 7' NIF_MESSAGE or NIF_ICON or NIF_TIP;
Largo NIDATA#, 16 = 1234' benutzerdef. Message, muß größer como 1024 (wm_user) ser
Largo NIDATA#, 20 = loadicon(icondll&,ic2#)'LoadIcon(0,0) ' Handle uno Systemicons
String NIDATA#, 24 = ""+Chr$(0)' Tooltip, max. 63 Signo
ShellNotify(0,NIDATA#)' NIM_ADD
ENDPROC
proc add_tryicon
parámetros texto$,icon$
Ventana de Estilo $78
CreateTrayIcon
SetNewIcon icon$
ENDPROC
proc del_tryicon
ShellNotify(2,NIDATA#)' NIM_DELETE
ENDPROC
usermessages 1234
Ventana 0,0 - 800,800
Windowtitle "Rechtsklick en Icon para final!"
add_tryicon "Test","A"
SETICON $WinPath+"\\explorer.exe"
settimer 150
Sinestar encargado Ende%
waitinput
if %wmtimer
imprimir %umessage
'Diese Umessage debería sólo 1234 en Mouseover Icon ser. Ansonsten 0!
caso &ulparam=516:End
endif
Endwhile
del_tryicon
|
|
|
| |
|
|
|
Rolf Koch | Zum Referencia: En uno Problemsuche con IF es aufgefallen, daß una Temporizador como aquí en el Fall el Umessages scheinbar wegkickt. Mussten uns also algo muy más ausdenken. ¿Por qué el Messages en %WMTIMER como aquí en el Ejemplo no ankommen, dürfte tal vez Roland klären puede, oder? |
|
|
| |
|
|