Seite 1 von 1

Fenster in Systray

Verfasst: 15.03.2006 16:44
von winduff
Hallo

WEnn mein Programm minimiert wird, will ich dass es ein Ico in der Systray gezeigt wird, und das Programm selber versteckt.

Habe es anhand eines Beispiels so gelöst:

Code: Alles auswählen

If IsIconic_(WindowID(#mainwin)) = #True And Minimized = #False
    Minimized = #True
    HideWindow(#mainwin,#True)
    AddSysTrayIcon(#SysIcon,WindowID(#mainwin),Icon)
    SysTrayIconToolTip(#SysIcon,"Anti-Ripper")
  ElseIf IsIconic_(WindowID(#mainwin)) = #False And Minimized = #True
    Minimized = #False
    RemoveSysTrayIcon(#SysIcon)
  EndIf
Das Programm versteckt sich, aber es erscheint kein Ico in der Systray... bräuchte demnach bitte hilfe :-)

Danke :allright:
Chris :-)

Verfasst: 15.03.2006 17:07
von ts-soft
Bitte testbaren Code posten! Also einen Code, den ich in meine IDE kopieren
kann und wo dann der Fehler Auftritt. Für Icons usw. brauchen nicht
unbedingt mitgeliefert werden, aber der Dateityp ist wichtig.

Ist das so schwer?

PS: Wenn ich den fehlenden Code drumrum bastel, wird es wahrscheinlich
funktionieren, das bringt also nichts :mrgreen:

Verfasst: 15.03.2006 17:17
von winduff
ne net soooo schwer :-D

Code: Alles auswählen

Enumeration
  #fenster
  #SysIcon
EndEnumeration

Procedure Open_mainwin()
  If OpenWindow(#fenster, 407, 243, 445, 255, "Systray test" ,#PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_MinimizeGadget |#PB_Window_ScreenCentered )
  ButtonGadget(0,5,5,50,50,"test",0)
    EndIf
  
  EndProcedure
  
  Open_mainwin()
  
  Icon.l = ExtractIcon_(WindowID(#mainwin),"Anti-Ripper",0)
  
  Repeat

    Event = WaitWindowEvent() 
    
If IsIconic_(WindowID(#fenster)) = #True And Minimized = #False
  Minimized = #True
  HideWindow(#fenster,#True)
  AddSysTrayIcon(#SysIcon,WindowID(#fenster),Icon)
  SysTrayIconToolTip(#SysIcon,"Anti-Ripper")
ElseIf IsIconic_(WindowID(#fenster)) = #False And Minimized = #True
  Minimized = #False
  RemoveSysTrayIcon(#SysIcon)
EndIf 

Until Event = #PB_Event_CloseWindow 
End
Hoffe das war mal gut ^^

Verfasst: 15.03.2006 17:32
von ts-soft
1. CreateGadgetList() fehlt
2. Das mit ExtracIcon mußte erklären, dieses Fenster ist im Source nicht vorhanden, mit : Icon.l = LoadIcon_(#Null, #IDI_ASTERISK) gehts
3. Deine Ereignisschleife ist noch murks

Verfasst: 15.03.2006 17:43
von winduff
ja öhm, war schnell neu gemacht und den code für die systray reinkopiert...

Sorry

Habe jetzt Icon.l = LoadIcon_(#Null,#IDI-ASTERISK)

Creategadgetlist() war schon drin (nur in dem beispiel hier nicht) genauso wie ereignisschleife...

geht jedoch immer noch nicht :-(

ICh hoffe ich belästige euch nicht mit blöden fragen, bin nunmal ein anfänger... :oops:

Lg
Chris

Verfasst: 15.03.2006 17:47
von ts-soft
Such mal in der Hilfe nach If, informiere Dich, wie und wozu man es einsetzen kann, z.B. überprüfen ob Icon.l nicht 0 ist?

Wegen der Eventloop sollteste nochmal im CodeArchiv und der Hilfe nachsehen.

Verfasst: 15.03.2006 19:28
von winduff
mhm Icon.l ist = 16116 (ungefähr)

Habe keine ahnung was das heisst ;-)

Ähm ja werde mich mal an hand eines Beispiels weiterversuchen ;-)

//edit: Fehler behoben, Image0 war nicht angegeben *ichidiot*

- close -

Danke nochmals an alle!

lg
chris