Probléme Droopy lib - SysTrayIconBalloon

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Probléme Droopy lib - SysTrayIconBalloon

Message par JohnJohnsonSHERMAN »

Coucou tout l'monde!
J'ai installé hier la Droopy lib, et j'ai pu m'amuser avec pas mal de truc sauf celui qui m'était le plus utile :cry: SysTrayIconBalloon , qui affiche un ballon de notification au dessus d'une icone dans la zone systray... PB reconnait la fonction (j'ai l'auto complétion et tout) mais le linker plante a la compilation.
Il suffit de mettre SysTrayIconBalloon en commentaire et tout marche :twisted:

Ex : avec l'exemple de droopy
Image

Que faire ?
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par Ar-S »

Montre la source de la fonction stp.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par Ar-S »

C'est ce que je voulais vérifier en voyant la proce :wink:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par JohnJohnsonSHERMAN »

Non ca ne vient pas des API : la fontion SetWindowTransparency, qui utilise SetWindowLong_() fonctionne parfaitement, je lutilise dans ma derniére version de Sherplay sans probléme... de toute facon, comme c´est une lib compilée ca ne devrai pas poser de probléme non?
Je me demande si ca ne viendrait pas de ma version de pb (la 5.41) alors que la Droopy lib a été faite sous la 5.20 ?
Il y a un tas d´autres fonctions qui font la meme erreur, comme toutes celles qui examinent l´utilisateur en cours ou le nom de l´ordi... c´est dommage, y´a moyen de faire plein de trucs avec la droopy lib quand ca marche :(
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par Ar-S »

Je vais me répéter mais montre la source de la fonction stp. on pourra au moins la tester avec une version complète de pb..
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par Ar-S »

Je l'ai testé..

Code : Tout sélectionner

Structure NOTIFYICONDATA_
  cbSize.l
  CompilerIf #PB_Compiler_Processor = #PB_Processor_x64
    PB_Alignment1.b[4]
  CompilerEndIf
  hWnd.I
  uId.l
  uFlags.l
  uCallbackMessage.l
  CompilerIf #PB_Compiler_Processor = #PB_Processor_x64
    PB_Alignment2.b[4]
  CompilerEndIf
  hIcon.I
  StructureUnion
    szTip.s{64}
    szTipEx.s{128}
  EndStructureUnion
  dwState.l
  dwStateMask.l
  szInfo.s{256}
  StructureUnion
    uTimeout.l
    uVersion.l
  EndStructureUnion
  szInfoTitle.s{64}
  dwInfoFlags.l
  guidItem.GUID
  hBalloonIcon.I
EndStructure 

Procedure SysTrayIconBalloon(uId, hWindow, Title$, message$, TimeOut, flags) ;+++
  ;/// Show a Systray Balloon
  ;/// Icon can be #NIIF_NONE #NIIF_INFO #NIIF_WARNING #NIIF_ERROR
  
  Shared nId.NOTIFYICONDATA_
  If OSVersion() >= #PB_OS_Windows_Vista
    nId\cbSize = SizeOf(NOTIFYICONDATA_)
  ElseIf OSVersion() >= #PB_OS_Windows_XP
    nId\cbSize = #NOTIFYICONDATA_V3_SIZE
  ElseIf OSVersion() >= #PB_OS_Windows_2000
    nId\cbSize = #NOTIFYICONDATA_V2_SIZE
  Else
    nId\cbSize = #NOTIFYICONDATA_V1_SIZE
  EndIf
  If nId\cbSize
    nId\uId         = uId
    nId\hWnd        = hWindow
    nId\szInfoTitle = Title$
    nId\szInfo      = message$
    nId\uTimeout    = TimeOut
    nId\dwInfoFlags = flags
    nId\uFlags      = #NIF_INFO
    nId\uVersion    = #NOTIFYICON_VERSION+1
    Shell_NotifyIcon_(#NIM_SETVERSION, @nId)
    ProcedureReturn Shell_NotifyIcon_(#NIM_MODIFY, @nId)
  EndIf
  ProcedureReturn #False
EndProcedure

;&&&1 SysTrayIconBalloonHide
Procedure SysTrayIconBalloonHide() ;+++
  ;/// Hide the systray ballon
  
  Shared nId.NOTIFYICONDATA_
  PokeS(@nId\szInfo,"",0)
  Shell_NotifyIcon_(#NIM_MODIFY, @nId)
  
EndProcedure



OpenWindow(0,#PB_Ignore,#PB_Ignore,200,50,"BalloonTip",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(0,10,10,180,20,"SysTrayIconBalloon",#PB_Button_Toggle)
AddSysTrayIcon(0, WindowID(0), ExtractIcon_(0,"explorer.exe",3))
SetGadgetState(0,#False)

Repeat
  evt=WaitWindowEvent()
  If evt=#PB_Event_Gadget And EventGadget()=0 And EventType()=#PB_EventType_LeftClick
    If GetGadgetState(0)=0
      SysTrayIconBalloonHide()
    Else
      SysTrayIconBalloon(0, WindowID(0),"BalloonTip !","Icon "+Str(i),100,i)
      i+1
      If i=7 : i=0 : EndIf
    EndIf
  EndIf
Until evt=#PB_Event_CloseWindow


Je pense cependant que la droopy lib n'est plus à jour car il y a au moins 3 fonctions à commenter pour l'executer en 5.41.
Enfin je n'ai pas de message d'erreur mais pas d'infobulle non plus (sous W10 x64 PB5.41x86)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par JohnJohnsonSHERMAN »

Tu as bien cliqué sur le bouton ? (Je pense que oui mais il ne faut rien négliger quand on cherche une solution)

Dans les paramétres du systray : afficher l´icone et les notifications
Je vais de mon coté réessayer avec la version 5.20 de PB, voir si ca change quelquechose, je te tiens au courant.

Ce serait quand meme dommage que cette fonctin ne marche plus sans raison apparente...
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par Droopy »

Bonjour,

je viens de tester l'exemple avec PB 5.40LTS x86 et 5.41LTS x86 et il fonctionne (après avoir mis en commentaire les fonctions MD5FileFingerprint CRC32FileFingerprint, car ces fonctions sont remplacées par FileFingerprint)

Essaye de ne pas compiler en unicode peut être.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par Ar-S »

et bien le code ci dessus extrait de la lib via hmod ne marche tours pas sous mon pc, unicode decoché.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par Droopy »

testé sur Windows 10, ça fonctionne chez moi.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par Ar-S »

Bizarroïde tout ça. Si ça marche comme ça chez vous tant mieux :wink:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Marc56
Messages : 2196
Inscription : sam. 08/févr./2014 15:19

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par Marc56 »

Les 'Balloon tips' ne sont pas un truc fiable étant donné que certaines versions de Windows ont eut à une époque une option permettant à l'utilisateur de les désactiver.
Pour ceux qui passent d'une version à l'autre de Windows par mise à jour, ça peut ne plus fonctionner.

Voir Google avec: How do I "enable balloon tips"

:wink:
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par Ar-S »

Une solution fiable et pas trop complexe serait d'utiliser un simple popup menu.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Marc56
Messages : 2196
Inscription : sam. 08/févr./2014 15:19

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par Marc56 »

SysTrayIconBalloon , qui affiche un ballon de notification au dessus d'une icone dans la zone systray...
Comme cette fonction Windows ne fonctionne pas ou d'une manière aléatoire, on se fait souvent sa propre fenêtre de notification.
(Ex: Thunderbird et la fenêtre de message)

J'ai réalisé dans mon application une simple procédure à laquelle je passe 2 à 3 paramètres
Texte, Couleur, [Timeout]
Si un timeout est défini, il déclenche un timer associé qui fermera la fenêtre dans le cas contraire elle reste ouverte
Dans tous les cas, un clic droit ou gauche la referme.

Ma fenêtre de bienvenue se referme au bout de 3 secondes alors que les fenêtre de fin de chrono reste (au cas où l'utilisateur ne soit pas devant l'écran à la fin du compte à rebours)

Simple logique, pas besoin de puiser dans les API

:wink:
Marc56
Messages : 2196
Inscription : sam. 08/févr./2014 15:19

Re: Probléme Droopy lib - SysTrayIconBalloon

Message par Marc56 »

On mélange aussi souvent le Tooltip (qui se déclenche au passage de la souris sur un élément, sans procédure particulière) et le Balloon Tooltip positionné et déclenché par le programme ou par un clic utilisateur.
Le TrayIcon's Balloon Tooltip est lui aussi déclenché par le programme. Sous Windows il 10 apparait sous la forme d'un volet et non plus comme un ballon.

https://msdn.microsoft.com/en-us/librar ... 85%29.aspx

:wink:
Répondre