et qui sont obliger de passer par France telecom en tarif reduit locale
voici un petit compteur de connection qui affiche en Francs (modifiable en euro) et en temps la connection en cours et le cumul des connection passé !
il detecte la connection de maniere automatique !!

il genere 2 petit fichier une d'historique des connections , et l'autre le fichier qui garde le prix
pour remetre a zero il suffit des les effacer a la main !!
vu que voici le source , il va vous etre facile de le modifier !
simple a comprendre !!


; la Procedure InternetStatus() a été faite par
; HowIsInternet - 09/22/2003 updated by TerryHough
; (c) ses007, 2003
; From PB forum, topic
; http://jconserv.net/purebasic/viewtopic.php?t=5590
; ce Programme a été réalisé par Dobro en Purebasic v3.93
; j'ai volontaireùent utilisé le prix en franc
; pour l'euro il suffit d'utiliser la variable "prix_euro"
; en lieu et place de "prix_Franc"
; Initialisation
#INTERNET_CONNECTION_MODEM = $1
#INTERNET_CONNECTION_LAN = $2
#INTERNET_CONNECTION_PROXY = $4
#INTERNET_CONNECTION_MODEM_BUSY = $8
#INTERNET_CONNECTION_OFFLINE = $20
#INTERNET_CONNECTION_CONFIGURED = $40
#INTERNET_RAS_INSTALLED = $10
Declare SetWinTransparency(WinHandle.l, Transparency_Level.l)
Declare.s InternetStatus()
DefType.f prix_recup,prix_franc,prix_euro
Global MeasureIntervalTime
EcranX = GetSystemMetrics_ ( #SM_CXSCREEN ): ;=largeur de l'ecran
EcranY = GetSystemMetrics_ ( #SM_CYSCREEN ): ;=hauteur de l'ecran
WindowID = OpenWindow (1,EcranX-230, 0, 200, 50, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_BorderLess|#PB_Window_TitleBar , "PureCompteur" ) And CreateGadgetList ( WindowID (1))
WindowID = WindowID (1)
TextGadget (1,0,2,220,15, "Purecompteur réalisé par " )
TextGadget (2,0,15,220, 15, "DOBRO" )
TextGadget (3,0,29,220, 15, " en Purebasic v3.93" )
SetWinTransparency ( WindowID (), 255) ; ici on appel la procedure de transparence de fenetre
SetWindowPos_ ( WindowID (), -1, EcranX-230, 0, 0, 0, #SWP_NOSIZE | #SWP_NOMOVE )
Repeat
; dobro=1
; compt=compt+1
; If compt=500
; compt=0
; Delay(10000)
; dobro=0
; EndIf
Event= WindowEvent ()
Delay (1)
retour.s=InternetStatus() ; on regarde le modem grace a TerryHough
; on se Connecte
If retour.s= "The Internet connection is currently connected (online)." + Chr (10) And connect=0 ; on est connecté !!!
file = OpenFile ( #PB_Any , "connection.txt" ) ; on ouvre le fichier des connections
Annee1= Year ( Date ())
Jour1 = Day ( Date ())
Mois1= Month ( Date ()) : Restore Moi: For t=1 To Mois : Read moa.s: Next t
Heure1= Hour ( Date ())
minute1 = Minute ( Date ())
Seconde1 = Second ( Date ())
Date1 = Date (Annee1, Mois1, Jour1, Heure1, minute1, Seconde1) ; recup la date actuelle
Texte$= "connection le " + Str (Jour1)+ " " +moa.s+ " " + Str (Annee1)+ " a : " + Str (Heure1)+ ":" + Str (minute1)+ ":" + Str (Seconde1)
If file<>0
FileSeek ( Lof ()) ; va a la fin du fichier )
WriteStringN (Texte$) ; ecrit la nouvelle ligne
CloseFile (file) ; ferme le fichier
file = OpenFile ( #PB_Any , "tarif.ini" ) ; on ouvre le fichier des connections
If file<>0
prix_recup.f= ReadFloat () ; ecrit le tarif depensé
CloseFile (file) ; ferme le fichier
EndIf
connect=1
EndIf
EndIf
; ************************** si déconnection apres Connection ***************************************************
If connect=1 And retour.s= "The Internet connection is currently offline. " ; on est deconnecté !!!
connect=0
file = OpenFile ( #PB_Any , "connection.txt" ) ; on ouvre le fichier des connections
Texte$= "connecté pendant: " +duree$
texte2$= "soit : " + StrF ( prix_euro.f,2)+ " € " + "ou " + StrF (prix_franc.f,2)+ " francs dépensé !"
If file<>0
FileSeek ( Lof ()) ; va a la fin du fichier )
WriteStringN (Texte$) ; ecrit les 3 nouvelles lignes
WriteStringN (texte2$)
WriteStringN ( " " ) ; insere une ligne vide
CloseFile (file) ; ferme le fichier
EndIf
file = OpenFile ( #PB_Any , "tarif.ini" ) ; on ouvre le fichier des tarifs
If file<>0
WriteFloat ( prix_total.f) ; ecrit le tarif depensé
CloseFile (file) ; ferme le fichier
EndIf
lu=0
EndIf
; ****************************************************************************************************************
If connect=1 ; modifie l'affichage de la fenetre si connecté
Annee= Year ( Date ())
Jour = Day ( Date ())
Mois= Month ( Date ()) : Restore Moi: For t=1 To Mois : Read moa.s: Next t
Heure= Hour ( Date ())
minute = Minute ( Date ())
Seconde = Second ( Date ())
Dite = Date (Annee, Mois, Jour, Heure, minute, Seconde) ; recup la date actuelle en seconde
Dote=Dite-Date1 ; petite soustraction pour voir ou l'on n'en est dote est en seconde
duree$ = FormatDate ( "%hh:%ii:%ss" , Dote)
;sur France Telecom en 56K et heure creuse mode locale le prix"0.02€/minute" : ; 0.13 frs/minute soit : 7,87 franc/ heures
prix_euro=(Dote/60)*0.02
prix_franc=(Dote/60)*0.13
prix_total.f=prix_franc+prix_recup
SetGadgetText (1, " connecté pendant : " + duree$)
SetGadgetText (2, " soit :" + StrF (prix_franc,2)+ " francs" )
SetGadgetText (3, " total des com :" + StrF ( prix_total.f,2)+ " francs" )
EndIf
If retour.s= "The Internet connection is currently offline. " And connect=0 And lu=0 ; modifie l'affichage de la fenetre si déconnecté
file = OpenFile ( #PB_Any , "tarif.ini" ) ; on ouvre le fichier des connections
If file<>0
prix_recup.f= ReadFloat () ; ecrit le tarif depensé
CloseFile (file) ; ferme le fichier
EndIf
lu=1
SetGadgetText (1, "Purecompteur réalisé par " )
SetGadgetText (2, "DOBRO" )
SetGadgetText (3, " total des com :" + StrF (prix_recup.f,2)+ " francs" )
EndIf
Until Event= #PB_Event_CloseWindow
; Pour changer le niveau de transparence de la fenêtre
; Le niveau de transparence doit être compris entre 1 (transparence totale) et 255 (opaque)
Procedure SetWinTransparency(WinHandle.l, Transparency_Level.l)
SetWindowLong_ (WinHandle, #GWL_EXSTYLE , GetWindowLong_ (WinHandle, #GWL_EXSTYLE ) | $00080000) ; #WS_EX_LAYERED = $00080000
If OpenLibrary (0, "user32.dll" )
CallFunction (0, "SetLayeredWindowAttributes" , WinHandle, 0, Transparency_Level, 2)
CloseLibrary (0)
EndIf
EndProcedure
Procedure.s InternetStatus()
Protected dwFlags.l, msg.s
If InternetGetConnectedState_ (@dwFlags, 0)
; If dwFlags & #INTERNET_CONNECTION_CONFIGURED
; msg = msg + "An Internet connection is configured." + Chr(10)
; EndIf
;
; If dwFlags & #INTERNET_RAS_INSTALLED
; msg = msg + "A Remote Access Service (RAS) is installed." + Chr(10)
; EndIf
;
; If dwFlags & #INTERNET_CONNECTION_MODEM
; msg = msg + "The Internet connection is made by a modem"
; EndIf
;
; If dwFlags & #INTERNET_CONNECTION_LAN
; msg = msg + "The Internet connection is made via a network (LAN)"
; EndIf
;
; If dwFlags & #INTERNET_CONNECTION_PROXY
; msg = msg + " and using a Proxy server." + Chr(10)
; Else
; msg = msg + "." + Chr(10)
EndIf
; seul ce parametre est interressant pour connaitre si il y a connection
; grace au modem 56 K
If dwFlags & #INTERNET_CONNECTION_OFFLINE
msg = msg + "The Internet connection is currently offline. "
Else
msg = msg + "The Internet connection is currently connected (online)." + Chr (10)
EndIf
; If dwFlags & #INTERNET_CONNECTION_MODEM_BUSY
; msg = msg + "The modem is busy with another connection."
; EndIf
;
; Else
; msg = "Currently, there is no Internet connection."
; EndIf
ProcedureReturn msg
EndProcedure
DataSection
Moi:
Data.s "janvier" , "fevrier" , "mars" , "avril" , "mai" , "juin" , "juillet" , "aout" , "septembre" , "octobre" , "novembre" , "decembre"
EndDataSection
