Sys Tray

Anfängerfragen zum Programmieren mit PureBasic.
netzcoder
Beiträge: 275
Registriert: 27.08.2009 14:14
Computerausstattung: Intel Quad Core 2.5 GHz; 8GB DDR2 RAM; NVIDIA GeForce GT 130 mit 1500 MB; 2TB HDD;
Kontaktdaten:

Sys Tray

Beitrag von netzcoder »

Hallo, ich sitze gerade an einem Mini-Tool und hab mir gedacht das ich SysTray dafür gut nutzen kann. Hab mir in der Hilfe das Beispiel angeschaut und dann überlegt wie ich es hinkriegen wenn ich einen Rechtsklick auf das Icon mache das dann ein Popup-Menu. Muss ich für Sys Tray nen Fenster aufhaben? hab es auf Invisiable gesetzt weil eigentlich will ich nur nen Icon wo wenn ich draufklicke Start und Ende kommen soll und ich muss wissen was geklickt wurde.
Gibt es dafür Beispiele?

Euer netzcoder
PB 4.40 Final Full Version
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: Sys Tray

Beitrag von TomS »

Ja. Du musst ein Fenster haben, wenn du Systray-Icons verwenden willst.
Du hast das Problem ja eigentlich schon alleine gelöst.
Das Fenster einfach mit #PB_Window_Invisible öffnen.
Zum Thema 'was geklickt wurde' wirst du in der Hilfe zum Popupmenü fündig.

Ein Beispiel habe ich gerade in 2 Minuten gebastelt. Streng dich ein bißchen an, schau in der Hilfe nach, dann kriegst du es auch ganz leicht hin.
netzcoder
Beiträge: 275
Registriert: 27.08.2009 14:14
Computerausstattung: Intel Quad Core 2.5 GHz; 8GB DDR2 RAM; NVIDIA GeForce GT 130 mit 1500 MB; 2TB HDD;
Kontaktdaten:

Re: Sys Tray

Beitrag von netzcoder »

Jo das hab ich ja alles gemacht. Bloß irgendwie passt da was noch nicht... Nun ja ich schau nochmal
PB 4.40 Final Full Version
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Sys Tray

Beitrag von mk-soft »

Hab gerade etwas Zeit. Aus den PB-Beispiele zusammen geschustert.
Für das Icon habe ich eine API genommen.

Code: Alles auswählen


Enumeration
  #Menu
EndEnumeration

Enumeration
  #Menu_Start
  #Menu_Stop
  #Menu_Exit
EndEnumeration

If OpenWindow(0, 100, 150, 300, 100, "PureBasic - SysTray Example", #PB_Window_SystemMenu | #PB_Window_Invisible)

  hIcon1 = LoadIcon_(0, #IDI_APPLICATION)
  
  AddSysTrayIcon(1, WindowID(0), hIcon1)
  SysTrayIconToolTip(1, "Icon 1")

  If CreatePopupMenu(#Menu)
    MenuItem(#Menu_Start, "Start")
    MenuItem(#Menu_Stop, "Stop")
    MenuBar()
    MenuItem(#Menu_Exit, "Beenden")
  EndIf
  
  exit = 0
  
  Repeat
    Event = WaitWindowEvent()
    
    Select Event
      Case #PB_Event_SysTray
        If EventType() = #PB_EventType_LeftClick
          DisplayPopupMenu(#Menu, WindowID(0))
        EndIf
      
      Case #PB_Event_Menu
        Select EventMenu()
          Case #Menu_Start
            MessageRequester("Info", "Start...")
          Case #Menu_Stop
            MessageRequester("Info", "Stopp...")
          Case #Menu_Exit
            exit = 1
              
        EndSelect
        
      Case #PB_Event_CloseWindow
        exit = 1
        
    EndSelect
    
  Until exit
  
EndIf
FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
netzcoder
Beiträge: 275
Registriert: 27.08.2009 14:14
Computerausstattung: Intel Quad Core 2.5 GHz; 8GB DDR2 RAM; NVIDIA GeForce GT 130 mit 1500 MB; 2TB HDD;
Kontaktdaten:

Re: Sys Tray

Beitrag von netzcoder »

Nun klappt es! Danke! Fehler lag dadrin das ich eine falsche Reinfolge hatte und Event niemals da wo ich es abgefragt habe irgendeinen Inhalt hatte!

EDIT: Thanks für den beispielcode!
PB 4.40 Final Full Version
Antworten