Abgleich

09/18/2011 22:19 Juloko#1
Hallo Community,

ich sitze gerade vor einem kleinem Problem.
Ich habe ein Skript gebaut, mit dem man 2 Programme öffnen und schließen kann (ganz über Benutzeroberfläche).
Dazu wird in eine Datei geschrieben welche Programme gerade laufen (*.txt Datei)
Die sieht wiefolgt aus:

Quote:
0
0

;Es läuft keine der beiden *.exe Dateien, wenn bei beiden eine 1 angezeigt wird, laufen beide.
So, derzeit wird jede Sekunde überprüft, ob beide Programm laufen, und die Datei wird sofort aktualisiert.
Ich möchte die *.txt Datei jetzt aber auf einen FTP-Server Laden um im Internet abfragen zu können, ob beide Programme laufen oder aus sind.

Der Dateiupload ist soweit funktionsfähig, ich möchte nur nicht jede Sekunde die Datei erneut hochladen.
Wie kann ich überprüfen, ob die Datei bzw. die Zustände geändert wurden?

Ich höffe ihr könnt mir helfen, Grüße :)
09/18/2011 22:27 BlackHybrid#2
Wie wäre es mit einer Abfrage, ob der Wert in der Datei = der Wert, den du ermittelst ist. Wenn das nicht der Fall ist lädst du es hoch.
09/18/2011 22:29 omer36#3
if FileReadLine() = 1 then ... ?
09/19/2011 14:40 Juloko#4
Hey, danke für die schnellen Antworten.

Es ist glaube ich nicht ganz so gut für's Logische denken wenn man zu viel Code auf einmal Schreibt :)

Ich hab das ganze so gelöst indem ich, wenn ein Programm An,- oder Ausgeschaltet wird eine Variable auf "1" setze. Diese wird jede Sekunde abgefragt, und sobald sie auf "1" steht tritt ein Ereignis ein und sie wird wieder auf "0" gesetzt.

Grüße und ein #cr
09/19/2011 22:33 | Moep |#5
ermittle einfach den hash der datei. Ist bei jeder Datei unterschiedlich, sobald auch nur ein Zeichen anderst ist. Hier ein Beispiel dazu aus der Autoit Hilfe.

Code:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <Crypt.au3>

; Example of hashing files

; Create GUI
$hWnd=GUICreate("Hasher",370,60)
$hFileControl=GUICtrlCreateInput("",5,5,200,20)
$hBrowseButton=GUICtrlCreateButton("...",210,5,35,20)
$hHashCombo=GUICtrlCreateCombo("MD5",250,5,50,20)
GUICtrlSetData(-1,"MD2|MD4|SHA1")
$hCalcButton=GUICtrlCreateButton("Calculate",305,5,60,20)
$hHashLabel=GUICtrlCreateLabel("Hash Digest",5,35,365,20,$SS_CENTER)

GUISetState(@SW_SHOW)

_Crypt_Startup()

Do
	$msg=GUIGetMsg()

	Switch $msg
		Case $hBrowseButton
			$sFile=FileOpenDialog("Open file","","All files (*.*;)")
			GUICtrlSetData($hFileControl,$sFile)

		Case $hCalcButton
			$iALG_ID=0
			; What algorthm did the user choose?
			Switch GUICtrlread($hHashCombo)
				Case "MD2"
					$iALG_ID=$CALG_MD2
				Case "MD4"
					$iALG_ID=$CALG_MD4
				Case "MD5"
					$iALG_ID=$CALG_MD5
				Case "SHA1"
					$iALG_ID=$CALG_SHA1
				Case Else
					MsgBox(16,"Error","Not a valid algorithm!")
					ContinueLoop
			EndSwitch
			$sFile=GUICtrlRead($hFileControl)
			If Not FileExists($sFile) Then
				MsgBox(16,"Error","Invalid file")
				ContinueLoop
			EndIf
			$bDigest=_Crypt_HashFile($sFile,$iALG_ID)
			GUICtrlSetData($hHashLabel,$bDigest)

		Case $GUI_EVENT_CLOSE
			ExitLoop

	EndSwitch
Until False

_Crypt_Shutdown()