Cloud File Checker
Publié : dim. 11/août/2013 16:46
Étant loin de ma douce ces vacances, j'ai installé Google drive sur mon PC de la maison et sur mon portable.
Pour s’écrire rapidement et simplement on communique via un fichier texte. Dés qu'il est sauvé il est syncro par google drive sur les 2 machines. On peut ainsi s’écrire vite fait sans passer par un navigateur et autres email.
Cependant, GDrive ne prévient pas lorsqu'un fichier à été modifié.
J'ai donc fait un petit programme qui m'avertit lorsque le fichier ciblé a changé de taille.
Je suppose qu'il doit marcher avec les autres systèmes de cloud.
;**************************************
1 - Indiquez le chemin (ligne 19) de votre fichier
Vous pouvez aussi éventuellement changer la valeur de #DUREE en MS, par défaut il vérifie toutes les 10 sec (ligne 17)
Voilà, si ça peut vous servir.
Pour s’écrire rapidement et simplement on communique via un fichier texte. Dés qu'il est sauvé il est syncro par google drive sur les 2 machines. On peut ainsi s’écrire vite fait sans passer par un navigateur et autres email.
Cependant, GDrive ne prévient pas lorsqu'un fichier à été modifié.
J'ai donc fait un petit programme qui m'avertit lorsque le fichier ciblé a changé de taille.
Je suppose qu'il doit marcher avec les autres systèmes de cloud.
;**************************************
1 - Indiquez le chemin (ligne 19) de votre fichier
Vous pouvez aussi éventuellement changer la valeur de #DUREE en MS, par défaut il vérifie toutes les 10 sec (ligne 17)
Voilà, si ça peut vous servir.
Code : Tout sélectionner
; Cloud File Checker by AR-S //2013 // PB 5.20b9
; Vérifie le poids d'un fichier toutes les N ms et previent via un Popup
; si le fichier a été modifié
Enumeration
#LDVM
#Timer1
#SON
#SYSTRAY
#ICO_OFF
#ICO_ON
#POP
EndEnumeration
; ELEMENTS MODIFIABLES ------------------
#DUREE = 10000
; Fichier à surveiller.
Global f$ = "C:\MONFICHIER.txt"
;----------------------------------------
Global.q F, FF
IcoOFF = CreateImage(#ico_OFF,32,32)
StartDrawing(ImageOutput(#ico_OFF))
Box(0,0,32,32,$0)
Circle (10,10,8, $D0D029)
Circle (24,12,6, $D0D029)
Circle (16,19,6, $D0D029)
Circle (24,20,8, $D0D029)
Circle (7,20,7, $D0D029)
StopDrawing()
IcoON = CreateImage(#ico_ON,32,32)
StartDrawing(ImageOutput(#ico_ON))
Box(0,0,32,32,$0)
Circle (10,10,8, $00FF00)
Circle (24,12,6, $00FF00)
Circle (16,19,6, $00FF00)
Circle (24,20,8, $00FF00)
Circle (7,20,7, $00FF00)
StopDrawing()
Ws = GetSystemMetrics_ ( #SM_CXSCREEN )
Hs = GetSystemMetrics_ ( #SM_CYSCREEN )
Quite = 0
Procedure.w GetBarHeight()
; +--------------------------------------------------------------------------+
; | Code de GallyHC modifié par Ar-S |
; +--------------------------------------------------------------------------+
#ABM_GETSTATE = 4
#ABM_GETTASKBARPOS = 5
Structure lNXY
width.l
height.l
EndStructure
Define Barre.lNXY
Define Cadre.RECT
Define BarreData.APPBARDATA
SHAppBarMessage_(#ABM_GETTASKBARPOS, BarreData)
SHAppBarMessage_(#ABM_GETSTATE, BarreData)
Cadre\left = BarreData\rc\left
Cadre\right = BarreData\rc\right
Cadre\top = BarreData\rc\top
Cadre\bottom = BarreData\rc\bottom
Barre\width = Cadre\right - Cadre\left
Barre\height = Cadre\bottom - Cadre\top
If Cadre\left < 1 And Cadre\top > 0 And (Barre\width > Barre\height)
BarPos = 1 ; bas
EndIf
If Cadre\left < 1 And Cadre\top < 1 And (Barre\width < Barre\height)
BarPos = 2 ; gauche
EndIf
If Cadre\left > 1 And Cadre\top < 1 And (Barre\width < Barre\height)
BarPos = 3 ; haut
EndIf
If Cadre\left < 1 And Cadre\top < 1 And (Barre\width > Barre\height)
BarPos = 4 ; haut
EndIf
If BarPos = 1
HauteurBarre = Cadre\bottom - Cadre\top
ProcedureReturn HauteurBarre
Else
ProcedureReturn 0
EndIf
EndProcedure
Procedure.q CheckGDrive(Fichier$)
Poids.q = FileSize(Fichier$)
ProcedureReturn Poids
EndProcedure
If OpenWindow(#LDVM, 0, 0, 100, 20, "Google Drive File Checker by AR-S", #PB_Window_Invisible )
AddSysTrayIcon(#SYSTRAY, WindowID(#LDVM), IcoOFF )
SysTrayIconToolTip(#SYSTRAY, "Vous n'avez pas de nouveau message")
; Création du Popup Menu
If CreatePopupMenu(#POP)
MenuItem(1, "Pas de nouveau message")
MenuBar()
MenuItem(2, "Réinitialiser")
MenuItem(3, "Quitter")
EndIf
If GetBarHeight() <> 0
Hbar = GetBarHeight()
EndIf
F.q = CheckGDrive(f$)
FF.q = CheckGDrive(f$)
AddWindowTimer(#LDVM, #Timer1, #DUREE)
Count1 = 0
new = 0
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_SysTray
If EventType() = #PB_EventType_LeftClick Or EventType() = #PB_EventType_RightClick
DisplayPopupMenu(#POP,WindowID(#LDVM), Ws-240, Hs- (Hbar+80) )
EndIf
EndIf
If Event = #PB_Event_Menu
Select EventMenu()
; Réinitialiser le nombre de message à 0
Case 2
new = 0
SysTrayIconToolTip(#SYSTRAY, "Vous n'avez pas de nouveau message")
SetMenuItemText(#POP, 1, "Pas de nouveau message")
ChangeSysTrayIcon(#SysTray, IcoOFF)
;Quitter
Case 3
Quite = 1
EndSelect
EndIf
If Event = #PB_Event_Timer
Select EventTimer()
Case #Timer1
Select Count1
Case #False
F = CheckGDrive(f$)
Count1 = #True
Case #True
FF = CheckGDrive(f$)
Count1 = #False
EndSelect
If F <> FF
new + 1
If new = 1
ChangeSysTrayIcon(#SysTray, IcoON)
EndIf
SysTrayIconToolTip(#SYSTRAY, "NOUVEAU MESSAGE : " + Str(new))
SetMenuItemText(#POP, 1, "NOUVEAU MESSAGE : " + Str(new))
DisplayPopupMenu(#POP,WindowID(#LDVM), Ws-240, Hs- (Hbar+80) )
EndIf
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow Or Quite = 1
EndIf
End