Ich weiß leider nicht was SAMP ist, ich vermute mal ein Spiel?
Was du auf jeden Fall erst einmal brauchst ist:
-Webspace auf welchen du php scripts laden kannst
-Eine Domain
(sowas bekommst du zB bei Strato, einfach googlen)
Via FTP lädst du dann dieses php script in deinen Webspace:
(das machst du zB mit FileZilla)
patchcheck.php
<?php
$latestVersion = "1.1"; //aktuell neuste version
$clientsVersion = htmlspecialchars($HTTP_RAW_POST_DATA); //empfange die versionsnummer vom ahk script
if ($latestVersion != $clientsVersion) //wenn die ahk scrpt version nicht der neusten version entspricht
echo "KeyBinder1.1.exe"; //dann schicke dem script den dateinamen zur neusten version
?>
Die neueste Version deines kompilieten Scripts musst du natürlich auch immer in den Webspace laden.
In das php script musst du dann natürlich noch die neuste version eintragen (latestVersion) und unten muss immer der dateiname der neusten version stehen.
Wir tun hier mal so als ob die neuste version 1.1 wäre und der neuste keybinder KeyBinder1.1.exe heißt.
Sagen wir mal deine domain heißt gyjohn.net. Deine ahk scripts sollten dann in etwa so aussehen:
myVersion := "1.0" ;die version dieses scripts
If %1%
FileDelete, %1% ;Lösche die alte version, wenn gerade geupdated wurde
Update(myVersion) ;versionsprüfung und ggf updaten
TrayTip,, Du hast jetzt die neuste version.
Sleep, 4000
;hier dann code für die keybindings und dein restlicher code
;...
Update(myVersion) {
HttpObj := ComObjCreate("WinHttp.WinHttpRequest.5.1")
url := "http://gyjohn.net/patchcheck.php"
HttpObj.Open("POST", url)
HttpObj.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0")
HttpObj.Send(myVersion)
newFile := HttpObj.ResponseText ;der dateiname der neuen version, falls es eie neue gibt
If InStr(newFile,".exe") { ;wenn wir den namen einer exe datei bekommen haben
TrayTip,, Updating...
HttpObj.Open("GET", "http://gyjohn.net/" newFile) ;neue version in den ram laden:
HttpObj.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0")
HttpObj.Send()
ADODBObj := ComObjCreate("ADODB.Stream") ;neue version aus dem ram aud die festplatte laden:
ADODBObj.Type := 1
ADODBObj.Open()
ADODBObj.Write(HttpObj.ResponseBody)
ADODBObj.SaveToFile(A_ScriptDir "\" newFile, 2)
ADODBObj.Close()
Run, %newFile% "%A_ScriptFullPath%" ;neue version starten und den pfad zur alter übergeben, sodass die alte gelöscht werden kann
ExitApp ;alte version beenden
}
}
Das script wird jetzt am anfang immer gucken ob es ein update braucht und falls ja, so wird die neue version runtergeladen, die alte version von der neuen gelöscht und die neue version wird automatisch gestartet.
Wenn du eine neue Version geschrieben hast, dann musst du diese halt immer in deinen Webspace laden und das php script entsprechend ändern.