Ziffern/Text im SysTray?

Für allgemeine Fragen zur Programmierung mit PureBasic.
spider84
Beiträge: 76
Registriert: 05.03.2008 03:06

Ziffern/Text im SysTray?

Beitrag von spider84 »

Hallo, ich würde mir gerne den aktuellen Benzinpreis in der TaskBar/SysTray anzeigen lassen. - Diese Darstellung ist momentan mein Problem.
Zuerst dachte ich, dass ich mir mehrere Icons mit Ziffern von 0-9 erstellen müsste. Aber das CodeArchiv hat mir mit "ProgressBar in Taskbar" gezeigt, dass es da auch einfachere Wege geben muss. Hat jemand eine Idee?
spider84
Beiträge: 76
Registriert: 05.03.2008 03:06

Beitrag von spider84 »

sry für den doppelpost - ich habe aber jetzt etwas experimentiert und wollte euch zumindest mal zeigen wie weit ich bin. die jetzige lösung ist noch nicht optimal, aber etwas besseres fällt mir nicht ein...

Code: Alles auswählen

; Programm zum anzeigen des aktuellen Benzin-Preises
;----------------------------------------------------------------------------------
; Get text contents of an internet site
; Text einer Internetseite auslesen
Procedure.l GB_DownloadToMem ( url.s, *lpRam, ramsize.l ) 
  Protected agent.s, hINet.l, hData.l, bytes.l 

  
  ;  #INTERNET_OPEN_TYPE_DIRECT    = 1 
  ;  #INTERNET_DEFAULT_HTTP_PORT   = 80 
  ;  #INTERNET_SERVICE_HTTP        = 3 
  ;  #INTERNET_FLAG_NO_CACHE_WRITE = $4000000 
  ;  #INTERNET_FLAG_RELOAD         = $8000000 
  

  agent.s = "Mozilla/4.0 (compatible; ST)" 
  hINet.l = InternetOpen_ ( @agent.s,0,0,0,0 ) 
  hData.l = InternetOpenUrl_ ( hINet, @url.s, "", 0, $4000000, 0 ) 
  
  If hData > 0 : InternetReadFile_ ( hData, *lpRam, ramsize.l, @bytes.l ) : Else : bytes = -1 : EndIf 
  
  InternetCloseHandle_ (hINet) 
  InternetCloseHandle_ (hFile) 
  InternetCloseHandle_ (hData) 
  ProcedureReturn bytes.l 
EndProcedure 

*MemoryID = AllocateMemory(50000)
If *MemoryID
  sitelength = GB_DownloadToMem("http://www.clever-tanken.de/showtank_payed.asp?Tankstelle=ARAL+Scharnweberstr.+12-13+Berlin&secureid=16261&typ=Super&ort=134", *MemoryID, 50000)
  If sitelength > 0
    Debug "Die geladene Internetseite hat eine Größe von: " + Str(sitelength) + " Bytes"
    text$ = PeekS(*MemoryID)
    position=FindString(text$,"Super:",1)
    ;Debug text$
    Debug "Position: "+Str(position)
    text$ = PeekS(*MemoryID + position + 63, 5)
    Debug text$
  Else
    Debug "Konnte angeforderte Internetseite nicht laden!"
  EndIf
Else
  Debug "Konnte den angeforderten Speicher nicht reservieren!"
EndIf
TrayWnd       = FindWindow_("Shell_TrayWnd", 0)
TrayNofifyWnd = FindWindowEx_(TrayWnd, 0, "TrayNotifyWnd", 0)

GetWindowRect_(TrayNofifyWnd,win.RECT)

x=win\left : y=win\top
w=win\right-win\left : h=win\bottom-win\top

If OpenWindow(0,x-7,y+5,27,15,"", #PB_Window_BorderLess )
   CreateGadgetList(WindowID(0))
   ;ProgressBarGadget(1,0,0,10,h,0,100,#PB_ProgressBar_Smooth)
   TextGadget(1, 0, 0, 27, 15, text$) 
   SetWindowPos_(WindowID(0),#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
EndIf
MessageRequester("","Bla",#PB_MessageRequester_Ok)

Auf Wunsch in Allgemein verschoben (Falko)
Antworten