Seite 1 von 2
Hintergrundanwendung erstellen
Verfasst: 30.01.2010 16:35
von Tombi
Hallo zusammen,
ich würde gerne eine Anwendung erstellen, welche "unsichtbar" im Hintergrund arbeitet.
Dazu bräuchte ich jedoch noch eure Hilfe.
Folgende Probleme:
1. Auf welche Weise kann ich das Programm aus der Startleiste entfernen? (Nur Systray?)
2. Auf welche Weise kann ich das Programm so aufbauen, das es einen Befehl (bzw das komplette Programm) nur alle X Minuten ausführt und der Rest der Zeit im Leerlauf läuft (abwartet)?
Re: Hintergrundanwendung erstellen
Verfasst: 30.01.2010 17:10
von mk-soft
Fenster erstellen mit #PB_Window_Invisible und AddWindowTimer()
FF

Re: Hintergrundanwendung erstellen
Verfasst: 30.01.2010 17:11
von hörmi
Hier ungefär so...
sollte zum größten teil selbsterklährend sein
benötigt allerdings min PB 4.40 wegen der timerfunktion
Code: Alles auswählen
OpenWindow(0,0,0,400,20,"",#PB_Window_SystemMenu|#PB_Window_Invisible)
AddWindowTimer(0,0,1000)
AddSysTrayIcon(0,WindowID(0),CreateImage(0,16,16))
CreatePopupMenu(0)
MenuItem(0,"Exit")
Repeat
event=WaitWindowEvent()
Select event
Case #PB_Event_Timer
;Hier kommt das rein was nur alle 1000ms bearbeitet werden soll
Case #PB_Event_SysTray
DisplayPopupMenu(0,WindowID(0))
Case #PB_Event_Menu
Select EventMenu()
Case 0
event=#PB_Event_CloseWindow
EndSelect
EndSelect
Until event=#PB_Event_CloseWindow
;Programm Ende
Re: Hintergrundanwendung erstellen
Verfasst: 30.01.2010 17:17
von Tombi
Gibt es da auch eine Möglichkeit für PB4.31?
Re: Hintergrundanwendung erstellen
Verfasst: 30.01.2010 17:19
von jojo1541
Die Timer über Win API, oder ElapsedMilliseconds() laufen lassen.
Re: Hintergrundanwendung erstellen
Verfasst: 30.01.2010 17:24
von Tombi
jojo1541 hat geschrieben:Die Timer über Win API
Erklär' das mal bitte genauer?
Re: Hintergrundanwendung erstellen
Verfasst: 30.01.2010 17:44
von RSBasic
http://www.rsbasic.q-soft.ch/index.php? ... &Itemid=59
Müsste bei dir funktionieren.
Bei mir unter PB 4.40 zählt er anscheinend nur bis 2

Liegt es daran, dass PB einen eigenen Timer besitzt und deshalb bei dieser API nicht korrekt zählt?
Re: Hintergrundanwendung erstellen
Verfasst: 01.02.2010 22:59
von Conrad
also ich würde das mit delay machen:
Re: Hintergrundanwendung erstellen
Verfasst: 02.02.2010 15:59
von jojo1541
Dann kann er aber sein Systray-Icon nur dann abfragen, wenn das Delay ausgelaufen ist. Also hier ungeeignet.
Re: Hintergrundanwendung erstellen
Verfasst: 02.02.2010 16:19
von hörmi
außer man lässt es im hintergrund laufen
Code: Alles auswählen
Procedure Irgendwas(zeit.l)
Repeat
...
Delay(zeit)
ForEver
EndProcedure
CreateThread(@Irgendwas(),1000)