Benzin-Preis-Anzeiger
Verfasst: 11.08.2008 16:16
Hallo!
Das Programm ist leider noch etwas unfertig, aber vlt hat sich sowas ja der ein oder andere gewünscht: Es zeigt den aktuellen Benzinpreis einer vorher ausgewählten Tankstelle im Tray an.
Ihr könnt gerne an den Ecken, die ich jetzt noch nicht implementieren konnte mithelfen.
Das Programm ist leider noch etwas unfertig, aber vlt hat sich sowas ja der ein oder andere gewünscht: Es zeigt den aktuellen Benzinpreis einer vorher ausgewählten Tankstelle im Tray an.
Ihr könnt gerne an den Ecken, die ich jetzt noch nicht implementieren konnte mithelfen.
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
Procedure HideFromTaskBar(hWnd.l, Flag.l)
Protected TBL.ITaskbarList
CoInitialize_(0)
If CoCreateInstance_(?CLSID_TaskBarList, 0, 1, ?IID_ITaskBarList, @TBL) = #S_OK
TBL\HrInit()
If Flag
TBL\DeleteTab(hWnd)
Else
TBL\AddTab(hWnd)
EndIf
TBL\Release()
EndIf
CoUninitialize_()
DataSection
CLSID_TaskBarList:
Data.l $56FDF344
Data.w $FD6D, $11D0
Data.b $95, $8A, $00, $60, $97, $C9, $A0, $90
IID_ITaskBarList:
Data.l $56FDF342
Data.w $FD6D, $11D0
Data.b $95, $8A, $00, $60, $97, $C9, $A0, $90
EndDataSection
EndProcedure
stdURL.s = "http://www.clever-tanken.de/showtank_payed.asp?Tankstelle=ARAL+Hafenstr.+19-21+Mannheim&secureid=5150&typ=Super&ort=681"
If OpenPreferences("Einstellungen.ini") = 0
CreatePreferences("Einstellungen.ini")
PreferenceGroup("URL")
WritePreferenceString("clever-tanken-URL", stdURL.s)
PreferenceGroup("Suchstring")
WritePreferenceString("string","Super:")
PreferenceGroup("Offset")
WritePreferenceString("Offset","63")
ClosePreferences()
EndIf
PreferenceGroup("URL")
URL.s = ReadPreferenceString("clever-tanken-URL", stdURL.s)
PreferenceGroup("Suchstring")
Suchstring.s = ReadPreferenceString("string","Super:")
PreferenceGroup("Offset")
Offset.s = ReadPreferenceString("Offset","63")
ClosePreferences()
*MemoryID = AllocateMemory(50000)
If *MemoryID
sitelength = GB_DownloadToMem(URL.s, *MemoryID, 50000)
If sitelength > 0
Debug "Die geladene Internetseite hat eine Größe von: " + Str(sitelength) + " Bytes"
text$ = PeekS(*MemoryID)
position=FindString(text$,Suchstring.s,1)
;Debug text$
Debug "Position: "+Str(position)
text$ = PeekS(*MemoryID + position + Val(Offset.s), 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) ;für Win9x
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,"blub", #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)
SetGadgetColor(1, #PB_Gadget_BackColor, $FF0000)
If CreatePopupMenu(0) ; hier beginnt das Erstellen des Menüs...
MenuItem(1, "Wechseln")
MenuItem(2, "Schließen" +Chr(9)+"Ctrl+C")
EndIf
EndIf
HideFromTaskBar(WindowID(0), 1)
;hier könnte routine für Transparenz stehen
;HideWindow(0, 1)
;MessageRequester("","Bla",#PB_MessageRequester_Ok)
;hier sollte ein wartebefehl her, der das programm z.B. immer um 15:00 uhr aktualisiert
closeapp=0
Repeat
HideFromTaskBar(WindowID(0), 1)
Select WaitWindowEvent()
Case #WM_RBUTTONDOWN
DisplayPopupMenu(0, WindowID(0))
Case #PB_Event_Menu ; ein Eintrag des Popup-Menüs wurde angeklickt
Select EventMenu() ; ermittle den angeklickten Menü-Eintrag...
Case 1 : Debug "Wechsel..."
Case 2 : closeapp=1
EndSelect
EndSelect
Until closeapp=1