1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. olsystems

Beiträge von olsystems

  • Hilfe bei Erstellung eines Updaters mit Gegenleistung

    • olsystems
    • 31. März 2014 um 18:24

    Hallo AutoIT'ler,
    vielleicht kann mir jemand von den Profis helfen bei der Erstellung eines Updaters.
    Im Spoiler ist bereits Code vorhanden, nur Leider funktioniert es noch nicht.

    Ich erhalte die Meldung:

    Code
    Linie 77 /File "C:\users\xxx\Desktop\UPDATE.au3
    _Update()
    ^ ERROR
    Error: Incorrect number of parameters in function call.

    Es soll nur nach einer neuen Version (.exe) auf dem FTP Server gesucht und ein Download angeboten werden.[/font]
    Falls es besser wäre, ich habe auch einen Download Server Zugang "[/font]download.lima-city.de"
    Ich biete für den, der mir bei der Lösung des Problems behilflich ist 20€ an.
    [/font]Sollte es sich länger hinziehen bin ich gern bereit auch mehr zu bezahlen[/font].

    Spoiler anzeigen
    [autoit]

    Global Const $INTERNET_FLAG_ASYNC = 0x10000000Global Const $INTERNET_FLAG_FROM_CACHE = 0x01000000Global Const $INTERNET_FLAG_OFFLINE = $INTERNET_FLAG_FROM_CACHE
    Func _FTP_Open($s_Agent, $l_AccessType = $INTERNET_OPEN_TYPE_DIRECT, $s_ProxyName = '', $s_ProxyBypass = '', $l_Flags = 0) If $__ghWinInet_FTP = -1 Then __FTP_Init() Local $ai_InternetOpen = DllCall($__ghWinInet_FTP, 'handle', 'InternetOpenW', 'wstr', $s_Agent, 'dword', $l_AccessType, _ 'wstr', $s_ProxyName, 'wstr', $s_ProxyBypass, 'dword', $l_Flags) If @error Or $ai_InternetOpen[0] = 0 Then Return SetError(-1, _WinAPI_GetLastError(), 0)
    Return $ai_InternetOpen[0]EndFunc ;==>_FTP_Open
    Func _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive = 0, $i_ServerPort = 0, $l_Service = $INTERNET_SERVICE_FTP, $l_Flags = 0, $l_Context = 0) If $__ghWinInet_FTP = -1 Then Return SetError(-2, 0, 0) If $i_Passive == 1 Then $l_Flags = BitOR($l_Flags, $INTERNET_FLAG_PASSIVE) Local $ai_InternetConnect = DllCall($__ghWinInet_FTP, 'hwnd', 'InternetConnectW', 'handle', $l_InternetSession, 'wstr', $s_ServerName, 'ushort', $i_ServerPort, 'wstr', $s_Username, 'wstr', $s_Password, 'dword', $l_Service, 'dword', $l_Flags, 'dword_ptr', $l_Context) If @error Or $ai_InternetConnect[0] = 0 Then Return SetError(-1, _WinAPI_GetLastError(), 0)
    Return $ai_InternetConnect[0]EndFunc ;==>_FTP_Connect
    Func _FTP_DirSetCurrent($l_FTPSession, $s_Remote) If $__ghWinInet_FTP = -1 Then Return SetError(-2, 0, 0) Local $ai_FTPSetCurrentDir = DllCall($__ghWinInet_FTP, 'bool', 'FtpSetCurrentDirectoryW', 'handle', $l_FTPSession, 'wstr', $s_Remote) If @error Or $ai_FTPSetCurrentDir[0] = 0 Then Return SetError(-1, _WinAPI_GetLastError(), 0)
    Return $ai_FTPSetCurrentDir[0]EndFunc ;==>_FTP_DirSetCurrent
    Func _FTP_ListToArray($l_FTPSession, $Return_Type = 0, $l_Flags = $INTERNET_FLAG_NO_CACHE_WRITE, $l_Context = 0) Local $aArray[1] $aArray[0] = 0 If $__ghWinInet_FTP = -1 Then Return SetError(-2, 0, $aArray) $aArray = __FTP_ListToArray($l_FTPSession, $Return_Type, $l_Flags, 0, 1, $l_Context) Return SetError(@error, @extended, $aArray)EndFunc ;==>_FTP_ListToArray
    Func _FTP_FileGet($l_FTPSession, $s_RemoteFile, $s_LocalFile, $fFailIfExists = False, $dwFlagsAndAttributes = 0, $l_Flags = $FTP_TRANSFER_TYPE_UNKNOWN, $l_Context = 0) If $__ghWinInet_FTP = -1 Then Return SetError(-2, 0, 0) Local $ai_FTPGetFile = DllCall($__ghWinInet_FTP, 'bool', 'FtpGetFileW', 'handle', $l_FTPSession, 'wstr', $s_RemoteFile, 'wstr', $s_LocalFile, 'bool', $fFailIfExists, 'dword', $dwFlagsAndAttributes, 'dword', $l_Flags, 'dword_ptr', $l_Context) If @error Or $ai_FTPGetFile[0] = 0 Then Return SetError(-1, _WinAPI_GetLastError(), 0)
    Return $ai_FTPGetFile[0]EndFunc ;==>_FTP_FileGet
    Func _FTP_Close($l_InternetSession) If $__ghWinInet_FTP = -1 Then Return SetError(-2, 0, 0) Local $ai_InternetCloseHandle = DllCall($__ghWinInet_FTP, 'bool', 'InternetCloseHandle', 'handle', $l_InternetSession) If @error Or $ai_InternetCloseHandle[0] = 0 Then Return SetError(-1, _WinAPI_GetLastError(), 0)
    If $__gbCallback_Set = True Then DllCallbackFree($__ghCallback_FTP)
    Return $ai_InternetCloseHandle[0]EndFunc ;==>_FTP_Close
    Func _ArrayAdd(ByRef $avArray, $vValue) If Not IsArray($avArray) Then Return SetError(1, 0, -1) If UBound($avArray, 0) <> 1 Then Return SetError(2, 0, -1)
    Local $iUBound = UBound($avArray) ReDim $avArray[$iUBound + 1] $avArray[$iUBound] = $vValue Return $iUBoundEndFunc ;==>_ArrayAdd
    Func _ArrayMax(Const ByRef $avArray, $iCompNumeric = 0, $iStart = 0, $iEnd = 0) Local $iResult = _ArrayMaxIndex($avArray, $iCompNumeric, $iStart, $iEnd) If @error Then Return SetError(@error, 0, "") Return $avArray[$iResult]EndFunc ;==>_ArrayMax
    Func __FTP_Init() $__ghWinInet_FTP = DllOpen('wininet.dll')EndFunc ;==>__FTP_Init
    _Update()
    $sServerName = "ftp.lima-city.de"$sUserName = "Peter"$sPassword = "Password"$iCurrentVersion = "1.4"$sFileName = "ABC v"$sDir = "/Downloads"$fStartAfter = "True"$sDatatype = ".exe"
    Func _Update($sServerName, $sUserName, $sPassword, $iCurrentVersion, $sFileName, $sDir = "", $fStartAfter = True, $sDatatype = ".exe")
    Local $aFileListNEW[1], $iFileNameLen = StringLen($sFileName), $hFTP_Open, $hFTP, $aFileListOLD[1], $i, $hGUI_UPDATE, $idBtnJA_UPDATE, $idBtnNEIN_UPDATE, $iNewestVersion
    $hFTP_Open = _FTP_Open("UPDATE") If @error Then Return SetError(1, 1) $hFTP = _FTP_Connect($hFTP_Open, $sServerName, $sUserName, $sPassword) If @error Then Return SetError(1, 2) If $sDir <> "" Then _FTP_DirSetCurrent($hFTP, $sDir) If @error Then Return SetError(1, 3) $aFileListOLD = _Ftp_ListToArray($hFTP) For $i = 0 To $aFileListOLD[0] If StringLeft($aFileListOLD[$i], $iFileNameLen) = $sFileName Then _ArrayAdd($aFileListNEW, StringTrimRight(StringTrimLeft($aFileListOLD[$i], $iFileNameLen), 4)) Next $iNewestVersion = _ArrayMax($aFileListNEW) If @error Then Return SetError(1, 4) If $iNewestVersion <= $iCurrentVersion Then Return 1
    $hGUI_UPDATE = GUICreate("Neue Version verfügbar!", 300, 200) GUISetBkColor(0xF7F6F9, $hGUI_UPDATE) $idLbl = GUICtrlCreateLabel("Es ist eine neue Version ihrer Software verfügbar!" & @CRLF & @CRLF & "Möchten Sie sie jetzt aktualisieren?", 5, 5, 300, 300) GUICtrlSetFont($idLbl, 12) $idBtnJA_UPDATE = GUICtrlCreateButton("Ja", 50, 160, 50, 20) $idBtnNEIN_UPDATE = GUICtrlCreateButton("Nein", 170, 160, 50, 20) GUISetState(@SW_SHOW)
    While 1 Switch GUIGetMsg()
    Case $idBtnJA_UPDATE _FTP_FileGet($hFTP, $sFileName & $iNewestVersion & $sDatatype, @ScriptDir & "" & $sFileName & $iNewestVersion & $sDatatype) If @error Then Return SetError(1, 5) _FTP_Close($hFTP) If $fStartAfter Then ShellExecute(@ScriptDir & "" & $sFileName & $iNewestVersion & $sDatatype) Return $iNewestVersion
    Case $idBtnNEIN_UPDATE GUIDelete($hGUI_UPDATE) _FTP_Close($hFTP) Return 1
    Case $GUI_EVENT_CLOSE GUIDelete($hGUI_UPDATE) _FTP_Close($hFTP) Return 1
    EndSwitch WEnd
    EndFunc ;==>_Update]

    [/autoit]


    Vielen Dank im voraus für eure Antwort bzw. Hilfe.[/font]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™