Traffic Verbrauch Ja/Nein

11/19/2010 15:41 MoepMeep#16
Du speicherst einfach das Datum der letzten Überprüfung ab. Bei Programmstart vergleichst du dies dann mit dem aktuellem Datum, wenn dieses ungleich ist prüfst du auf Updates.
11/19/2010 16:51 Ghostleader111#17
Quote:
Originally Posted by MoepMeep View Post
Du speicherst einfach das Datum der letzten Überprüfung ab. Bei Programmstart vergleichst du dies dann mit dem aktuellem Datum, wenn dieses ungleich ist prüfst du auf Updates.
Hallo MoepMeep und hallo eXcalibur93,

danke erstmal wieder für Eure Antworten. Beide Sachen von Euch klingen nach einer guten Idee.
Weiss vielleicht wer wie genau man das schreiben müsst was eXcalibur93 damit versucht zu sagen?

Zu Deinem Text MoepMeep
kann ich nur sagen, das ich zwar weiss auf was du anspielst, jedoch nicht so recht weiss wie man das Umsetzen kann und an welche Stelle dann genau der Code müsste [Denke mal an den Programm Start]! Wenn du eine Idee hast, währe ich dir für die Einweihung dankbar!

Ps. eXcalibur93 ich habe Dir ne PM geschickt!

Mfg Ghostleader111
11/19/2010 20:19 eXcalibur93#18
PHP Code:
#include <GuiConstantsEx.au3>
#include <Date.au3>
#include <WindowsConstants.au3>

$tTime _Date_Time_GetSystemTime()
$aTime _Date_Time_SystemTimeToArray($tTime)

$lastUpdateCheckDay IniRead ("C:\Programme\....""Last_Update_Check_Day")
$lastUpdateCheckMonth IniRead ("C:\Programme\....""Last_Update_Check_Month")
$nextUpdateCheckDay $lastUpdateCheckDay ;Hier also 5 Tage Später
$nextUpdateCheckMonth 
$lastUpdateCheckMonth ;Hier also der nächste Monat.
;
Wie man das mit dem Umspringen der Monate hinbekommt weis ich nichtJahreswechsel müsste man auchnoch einbauen,
;
aber das dürfte man iwie hinbekommen.

If 
$aTime[1] >= $nextUpdateCheck Or $aTime[0] >= $nextUpdateCheckMonth Then 
    
hier $aTime[1], da das der Tag ist$aTime[0wäre der Monat
    _UpdateCheck
() ; oder wie auch immer eure Updatefunktion aussieht
EndIf 
Iwie sowas in der Art habe ich gemeint. Ist bestimmt verbesserungswürdig, aber das kann moep oder so bestimmt machen :D .
11/19/2010 20:54 MoepMeep#19
Moep kann kein AutoIt und Moep ist stolz drauf :p Ich klau einfach mal von dir :x

Code:
#include <GuiConstantsEx.au3>
#include <Date.au3>
#include <WindowsConstants.au3>

$Time = _Date_Time_SystemTimeToArray(_Date_Time_GetSystemTime())
If $Time[1] != IniRead("C:\Programme\....", "Last_Update_Check_Day")
Update()
EndIf
;IniWrite für neues Datum
Für Syntaxfehler übernehm ich keine Haftung :p
11/19/2010 21:45 eXcalibur93#20
Ich habe eigentlich auch nicht dich gemeint, sondern | Moep | aber naja wenn du meinst ;D
11/20/2010 22:39 ZeraPain#21
weiß nicht wo da jetzt das problem sein soll..
wenn das wirklich so ein großes tool ist dann solltest du das doch wohl hinbekommen....
hier mal der einfachste code für 1 mal pro tag nach update suchen.
(das verbraucht so gut wie keinen traffic, da würde ich mir eher sorgen machen wenn alle das neue tool von deiner seite auf einmal laden wollen...)

Code:
If IniRead(@TempDir & "\update.ini", "update", "time", "") <> @MDAY & @MON Then
	IniWrite(@TempDir & "\update.ini", "update", "time", @MDAY & @MON)
	;->Code für update check..	
Else
	;->kein update check
EndIf
11/21/2010 00:01 Ghostleader111#22
Danke wieder für Eure Antworten.

Leider muss ich sagen, das das so nicht funktioniert, da er sagt das der If $Time[1] != IniRead("C:\Programme\update.data", "Last_Update_Check_Day")
falsch wäre. Einer meiner Collegen sagte, das er wenn er sich nicht Irrt, entweder keine oder wenn doch nur 2 Dimensionale Arrys vorhanden sind!
In unserem Code wird mit Clobal Const gearbeitet!

Anbei mal unseren Kommpletten Update Code. Nur Programm Name geändert!

Func UPDATECHECK()
DATENBANKENPRUEFEN()
If $M <> 700 Then
$TEMP[1] = GUICtrlCreateLabel(TRANSLATION("Es wird geprüft, ob neue Updates vorliegen. Bitte warten..."), 180, 320, 520, 25, $SS_CENTER)
GUICtrlSetFont(-1, 14, 400)
EndIf
FileSetAttrib("*.*", "-r", 1)
$VAR = 1
If $VAR Then
If IniRead($SCRIPTPATH & "data\config.ini", "testUpdate", "Server", $ALTERNATIVEUPDATESERVER) = "http://www.test.eu" Then
IniWrite($SCRIPTPATH & "data\config.ini", "testUpdate", "Server", $ALTERNATIVEUPDATESERVER)
EndIf
$TZ = LOADFILE(IniRead($SCRIPTPATH & "data\config.ini", "testUpdate", "Server", $ALTERNATIVEUPDATESERVER) & "/Updateinfo.data", $SCRIPTPATH & "data\Updateinfo.data")
If $TZ = 1 Then
$UNR = Number(IniRead($SCRIPTPATH & "data\Updateinfo.data", "Serverversion", "Versionnr", ""))
$UPFAD = IniRead($SCRIPTPATH & "data\Updateinfo.data", "Serverversion", "Versionname", "")
$FMIN = IniRead($SCRIPTPATH & "data\Updateinfo.data", "Serverversion", "Fullversionnr", "")
$UMINPFAD = IniRead($SCRIPTPATH & "data\Updateinfo.data", "AServerversion", "Fullversionname", "")
If $M <> 700 Then GUICtrlDelete($TEMP[1])
If $LUPDATE = 0 Then
If $UNR = 0 Then
MsgBox(16, TRANSLATION("Updatecheck Fehler"), TRANSLATION("Die Updatedatei wurde vom Server fehlerhaft geladen!"), 0)
ElseIf $UNR > $VNR Then
If $VNR > $FMIN Then
$JANEIN = MsgBox(68, "Update Information", TRANSLATION("Neues Update") & " '" & $UPFAD & "' " & TRANSLATION("verfügbar. Laden?"), 0)
If $JANEIN = 6 Then
If $M <> 700 Then
$TEMP[1] = GUICtrlCreateLabel(TRANSLATION("Neues Update wird geladen. Bitte warten..."), 180, 320, 520, 25, $SS_CENTER)
GUICtrlSetFont(-1, 14, 400)
EndIf
$FILE = IniRead($SCRIPTPATH & "data\config.ini", "testUpdate", "Server", $ALTERNATIVEUPDATESERVER) & "/" & $UPFAD & ".exe"
FileDelete($SCRIPTPATH & "Updates\test Update*.*")
LOADFILE($FILE, $SCRIPTPATH & "Updates\" & $UPFAD & ".exe")
GUICtrlDelete($TEMP[1])
MsgBox(64, "Update Information", TRANSLATION("Update wurde geladen und wird nun installiert. Der test wird dazu geschlossen."), 0)
If WinExists("Handels-Counter") Then
WinKill("Handels-Counter")
EndIf
If WinExists("test-Tray") Then
WinKill("test-Tray")
EndIf
Run($SCRIPTPATH & "Updates\" & $UPFAD & ".exe")
Exit
EndIf
Else
$JANEIN = MsgBox(68, "Update Information", TRANSLATION("Neues Update kann erst nach Installation der Fullversion") & " '" & $UMINPFAD & "' " & TRANSLATION("installiert werden. Jetzt die Full Version laden?"), 0)
If $JANEIN = 6 Then
If $M <> 700 Then
$TEMP[1] = GUICtrlCreateLabel(TRANSLATION("Full Version wird geladen. Bitte warten..."), 180, 320, 520, 25, $SS_CENTER)
GUICtrlSetFont(-1, 14, 400)
EndIf
$FILE = IniRead($SCRIPTPATH & "data\config.ini", "testUpdate", "Server", $ALTERNATIVEUPDATESERVER) & "/" & $UMINPFAD & ".exe"
LOADFILE($FILE, $SCRIPTPATH & "Updates\" & $UMINPFAD & ".exe")
If $M <> 700 Then GUICtrlDelete($TEMP[1])
MsgBox(64, "Update Information", "Full Version '" & $UMINPFAD & "' " & TRANSLATION("wurde geladen. Full Version wird nun installiert und der test dazu geschlossen."), 0)
If WinExists("Handels-Counter") Then
WinKill("Handels-Counter")
EndIf
If WinExists("test-Tray") Then
WinKill("test-Tray")
EndIf
Run($SCRIPTPATH & "Updates\" & $UMINPFAD & ".exe")
Exit
EndIf
EndIf
ElseIf $M = 700 Then
MsgBox(64, "UpdateCheck", TRANSLATION("test ist auf dem aktuellsten Stand."), 0)
EndIf
EndIf
If $M <> 700 Then
DATENBANKENPRUEFEN()
If $INSTALLEDLANGUAGEPACKS[0] > 0 And Number(IniRead($SCRIPTPATH & "data\updateinfo.data", "LanguageUpdateversion", "version_german", "100")) > $INSTALLEDLANGUAGEPACKS[0] Then
$TEMP[1] = GUICtrlCreateLabel(TRANSLATION("Update für deutsches Sprachpaket wird geladen..."), 180, 320, 520, 25, $SS_CENTER)
GUICtrlSetFont(-1, 14, 400)
SPRACHPAKETUPDATE_DOWNLOAD(IniRead($SCRIPTPATH & "data\updateinfo.data", "LanguageUpdateversion", "versionname_german", "lupd_de_100"))
EndIf
If $INSTALLEDLANGUAGEPACKS[1] > 0 And Number(IniRead($SCRIPTPATH & "data\updateinfo.data", "LanguageUpdateversion", "version_english", "100")) > $INSTALLEDLANGUAGEPACKS[1] Then
$TEMP[1] = GUICtrlCreateLabel(TRANSLATION("Update für englisches Sprachpaket wird geladen..."), 180, 320, 520, 25, $SS_CENTER)
GUICtrlSetFont(-1, 14, 400)
SPRACHPAKETUPDATE_DOWNLOAD(IniRead($SCRIPTPATH & "data\updateinfo.data", "LanguageUpdateversion", "versionname_english", "lupd_en_100"))
EndIf
If $INSTALLEDLANGUAGEPACKS[2] > 0 And Number(IniRead($SCRIPTPATH & "data\updateinfo.data", "LanguageUpdateversion", "version_french", "100")) > $INSTALLEDLANGUAGEPACKS[2] Then
$TEMP[1] = GUICtrlCreateLabel(TRANSLATION("Update für französisches Sprachpaket wird geladen..."), 180, 320, 520, 25, $SS_CENTER)
GUICtrlSetFont(-1, 14, 400)
SPRACHPAKETUPDATE_DOWNLOAD(IniRead($SCRIPTPATH & "data\updateinfo.data", "LanguageUpdateversion", "versionname_french", "lupd_fr_100"))
EndIf
EndIf
Else
If $M <> 700 Then GUICtrlDelete($TEMP[1])
MsgBox(16, "UpdateCheck", TRANSLATION("test Update Server nicht erreichbar!"), 0)
EndIf
Else
MsgBox(16, "Updatecheck", TRANSLATION("Keine Verbindung zum Internet, oder Server nicht verfügbar. Updatecheck wird übersprungen."), 0)
EndIf
EndFunc
Func SPRACHPAKETUPDATE_DOWNLOAD($FILE)
$FILE = $FILE & ".rar"
$TZ = LOADFILE(IniRead($SCRIPTPATH & "data\config.ini", "testUpdate", "Server", $ALTERNATIVEUPDATESERVER) & "/languagepacks/" & $FILE, $SCRIPTPATH & "Updates\" & $FILE)
If $TZ = 0 Then
GUICtrlDelete($TEMP[1])
MsgBox(16, TRANSLATION("Installation Sprachpaket"), TRANSLATION("Sprachpaketupdate nicht auf Server verfügbar!"), 2)
FileDelete($SCRIPTPATH & "Updates\" & $FILE)
Else
GUICtrlSetData($TEMP[1], TRANSLATION("Sprachpaketupdate wird installiert, bitte warten..."))
$DIR = @ScriptDir & "\"
ShellExecuteWait($SCRIPTPATH & "data\tools\zg.exe", ' -extract "' & $SCRIPTPATH & "Updates\" & $FILE & '" "' & $SCRIPTPATH & 'data\languagepacks" R1')
GUICtrlDelete($TEMP[1])
FileDelete($SCRIPTPATH & "Updates\" & $FILE)
EndIf
EndFunc

Vielleicht hilft es ja dabei, eine Möglichkeit zu finden um die Überprüfung auf 1 mal am Tag oder aller 2 Tage zu setzen.
Ich hoffe Ihr könnt mir da helfen und wir schaffen das zusammen einen passenden Weg zu finden.


PS: @ZeraPain

Ich habe nie gesagt das ich selber der große AutoIT`ler bin, noch das ich selber den Code geschrieben habe. Ich suche nach einer Lösung für unser Team, das das Problem behoben bzw. geändert werden kann!

Mfg Ghostleader
11/21/2010 00:17 ZeraPain#23
probiers mal so wie ich es geposted habe ;-)
es wird 1 mal pro tag überprüft.
11/21/2010 00:35 Ghostleader111#24
Hallo ZeraPain,

danke für deine schnelle Antwort. Könntest Du mir vielleicht noch sagen wo wir deinen Text am besten in unserem Code implementieren?

Mfg Ghostleader
11/21/2010 00:43 ZeraPain#25
am besten dahin wo euer updatecheck aufgerufen wird ;-)
(kannst auch die ini an eure einfach anpassen, dann braucht ihr nicht mehrere)

Code:
If IniRead(@TempDir & "\update.ini", "update", "time", "") <> @MDAY & @MON Then
	IniWrite(@TempDir & "\update.ini", "update", "time", @MDAY & @MON)
	UPDATECHECK()
EndIf

€: wäre dann so ungefähr:

Code:
If IniRead($SCRIPTPATH & "data\config.ini", "testUpdate", "lastUpdate", "") <> @MDAY & @MON Then
	IniWrite($SCRIPTPATH & "data\config.ini", "testUpdate", "lastUpdate", @MDAY & @MON)
	UPDATECHECK()
EndIf
11/21/2010 01:32 Ghostleader111#26
Hallo ZeraPain,

vielen Dank für deine Hilfe. Hat alles soweit geklappt, bis auf ein paar Kleinigkeiten die wir noch angepasst haben!

Mfg Ghostleader