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. Pitter

Beiträge von Pitter

  • Problem mit _FTP_FileGet()

    • Pitter
    • 5. Januar 2012 um 10:37

    Tach zusammen,

    hab da ein kleines Problem mit einem Teilscript.

    Ich lese eigentlich aus einer INI einen Pfad aus, in dem Dateien über FTP gesichert werden sollen.
    Zur Vereinfachung habe ich hier mal den Pfad als $localfolder definiert.

    Problem ist folgendes:
    Sobald ich unter:
    _FTP_FileGet($Conn, $ftpFile[$u], $ftpFile[$u]) den Pfad mit einfüge:
    _FTP_FileGet($Conn, $ftpFile[$u], $localfolder&$ftpFile[$u])

    , geht das in die Hose.
    Lasse ich den Pfad weg, sichert mir das Script zuverlässig die gewünschten Dateien ins Scriptdir.

    Was mach ich da falsch?!? ?(

    [autoit]

    #include <FTPEx.au3>
    #include <Array.au3>
    Local $server = 'pfad zum FTP'
    Local $username = ''
    Local $pass = ''
    Local $u, $ftpFile, $file, $right
    Local $localfolder = "c:\Testfiles\"

    [/autoit][autoit][/autoit][autoit]

    Local $Open = _FTP_Open('MyFTP Control')
    Local $Conn = _FTP_Connect($Open, $server, $username, $pass)
    _FTP_DirSetCurrent($Conn, "SDCARD0")

    [/autoit][autoit][/autoit][autoit]

    $ftpFile = _Ftp_ListToArray($Conn, 2)

    [/autoit][autoit][/autoit][autoit]

    For $u = 1 To $ftpFile[0]
    If @error Then
    MsgBox(4096, "Error", "Keine FTP-Verbindung!")
    EndIf
    $right = StringRight($ftpFile[$u], 4)
    If $right = ".dbg" or $right = ".bat" Then
    _FTP_FileGet($Conn, $ftpFile[$u], $ftpFile[$u])
    If @error Then
    MsgBox(4096, "Error", "Kann keine Dateien kopieren!")
    Exit
    EndIf
    EndIf
    Next
    Local $Ftpc = _FTP_Close($Open)

    [/autoit]
  • Serielle Verbindung, wenn ja wie?

    • Pitter
    • 10. September 2011 um 16:25

    Das probier ich mal aus!
    danke für den Tipp! :thumbup:

  • Serielle Verbindung, wenn ja wie?

    • Pitter
    • 10. September 2011 um 15:46

    Hallo Leute,

    ich steh mal wieder vor einer Aufgabe, die mich gerade überfordert....

    Ich stelle derzeit mittels TeraTerm über einen COM-Port eine Verbindung zu einem Gerät her. Dieses Gerät sendet dann jede Menge an Informationen an TeraTerm, die mitgeloggt werden sollten.

    Natürlich könnte ich TeraTerm im Hintergrund mitarbeiten lassen... aber das wäre ja zu einfach. ;)

    Was habe ich vor:

    Ich würde gerne ein GUICtrlCreateEdit() einbauen, welches die Ausgaben des Gerätes mitloggt und dann mittels Button als Textfile abgespeichert wird.
    Der 2. Teil ist nicht das Problem... nur der Zugriff auf das Fremdgerät macht mir noch Kopfweh.

    Habt Ihr da eine Idee zu?

  • Datei an einem bestimmten Punkt auslesen

    • Pitter
    • 31. Mai 2011 um 19:53

    Autsch...
    Da hätte ich auch selber drauf kommen können...

    Mal sehen, ob ich das gebacken bekomme. Wenn nicht, habt Ihr mich wieder am Hacken... ;)

    Danke erst mal
    Pitter

  • Datei an einem bestimmten Punkt auslesen

    • Pitter
    • 31. Mai 2011 um 19:37

    Hallo,
    ich steh mal wieder aufm Schlauch...

    Ich hab ne XML mit folgendem Inhalt:

    XML
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE FeatureLicense SYSTEM "feature.dtd">
    <FeatureLicense appName="GoPal Navigator" appVersion="5.0" editionName="PE" master="yes" vendor="MEDION" vendor-URL="http://www.medion.com/gopal-reg" version="1.0"/>

    Was ich aus dieser Datei brauche und veränderlich ist sind folgende Einträge:

    appVersion="5.0"

    editionName="PE"

    Von beiden Einträgen benötige ich allerdings NUR die Einträge in den Anführungszeichen, also in diesem Fall 5.0 und PE...

    Hülfäää... hab da ein echtes Brett vorm Kopf und bräuchte eure Unterstützung büdde...

    Gruß
    Pitter

  • Line: 9737. Error: Subscript used with non-Aray variable

    • Pitter
    • 3. März 2011 um 16:54

    Danke erst mal für die Hinweise...
    Werde das berücksichtigen bei meinen Änderungen...

    Was mich nur wundert ist, dass das bisher noch nirgendwo Probleme gemacht hat... nur bei Leuten, die osteuropäische Sprach-Versionen aktiv haben fängt das Teil das spinnen an....
    Die gleichen Grundscripte incl. der Encrypt-Funktion benutze ich in 6 verschiedenen Installern... ohne Änderung, mit genau dem gleichen Ablauf. Die Anpassungen erfolgen erst in den weiteren au3.

    Wenn ich da alle erfolgreichen Installationen addiere, komme ich auf fast 20.000 fehlerfreien Installationen (mal die DAUs ausgenommen, wo die Fehler vor der eigenen Tastatur sitzen und fehlerhafter Formatierung der SD-Karten, Blockaden durch Virenscanner oder Firewalls).... eigentlich immer die gleichen Fehler, bis auf diese beiden Burschen. einer mit russischer Sprachversion auf deutschem Win7 32bit und einer mit polnischer Sprachversion auf Vista 64bit.

    Deshalb habe ich bisher diesen kompletten Teil unangetastet gelassen, so wie ich das vor fast 1 Jahr mal erweitert habe.... Nach dem Motto: Never change a running system.

  • Line: 9737. Error: Subscript used with non-Aray variable

    • Pitter
    • 3. März 2011 um 15:45

    Interessanter Lösungsansatz....

    Hab das mal getestet und den Bereich lokalisiert.

    Das scheint in diesem Bereich zu liegen:

    Spoiler anzeigen
    [autoit]

    MsgBox(64, "Update!", "Es ist eine Neue Version verfügbar!")
    $fg = MsgBox(65, "Updaten?", "Möchten Sie jetzt Updaten?", 30)
    If $fg = 1 Then
    $DownloadIniFile = ($pfad & "GPW_3.ini") ;~ Pfad in Var schreiben
    $Ftp_IniName = "GPW.ini" ;~ Dateiname in Var schreiben

    [/autoit] [autoit][/autoit] [autoit]

    $Open = _FTP_Open('MyFTP Control') ;~ Öffne FTP
    If @error = 1 Then ftperror()

    [/autoit] [autoit][/autoit] [autoit]

    $label6 = GUICtrlCreateLabel("FTP wird geöffnet...", 144, 248, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    Sleep(500)

    [/autoit] [autoit][/autoit] [autoit]

    $Conn = _FTP_Connect($Open, $server, $username, $pass) ;~ Verbinden mit dem FTP
    If @error = 1 Then ftperror() ;~ Wenn kein FTP möglich, dann gehe in Fehler

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlDelete($label6)
    $label6 = GUICtrlCreateLabel("Anmelden am Server....", 144, 248, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    Sleep(500)

    [/autoit] [autoit][/autoit] [autoit]

    $FtpDir = _FTP_DirSetCurrent($Conn, $path) ;~ Wechseln des Standart-Verzeichnisses
    If @error = 1 Then ftperror() ;~ Wenn kein FTP möglich, dann gehe in Fehler

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlDelete($label6)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ftpd_2 = _FTP_ProgressDownload($Conn, $DownloadIniFile, $Ftp_IniName) ;~ Download mit Progressbar

    [/autoit] [autoit][/autoit] [autoit]

    If $Ftpd_2 = 1 Then ;~ Kontrolle, ob File da ist
    Local $Ftpc = _FTP_Close($Open) ;~ FTP wieder schliessen
    Else
    $label6 = GUICtrlCreateLabel("DATEI WURDE NICHT GELADEN!", 144, 248, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    Local $Ftpc = _FTP_Close($Open) ;~ FTP wieder schliessen
    Sleep(3000)
    endscript()
    Exit
    EndIf
    Sleep(200)
    FileMove($pfad & "GPW_3.ini", @ScriptDir & "\GPW.ini", 1) ;~ Die runtergeladene INI umbenennen zum Weiterverarbeiten

    [/autoit] [autoit][/autoit] [autoit]

    ;############### Lauf in die Encrypt-Funktion
    encrypt() ;~ call encrypt-function
    ;############### Kommt aus der Encrypt-Funktion zurück

    [/autoit] [autoit][/autoit] [autoit]

    $new_hardware = IniReadSection($pfad & "GPW_1.ini", "new_PNAs")
    $flag = 0
    For $i = 1 To $new_hardware[0][0]
    If StringLeft($new_hardware[$i][1], 4) = StringLeft($hardware[5], 4) Then
    $flag = 1
    ;~ Global $new_display_size = $new_hardware[$i][0]
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $var = IniReadSection($pfad & "GPW_1.ini", "version_path")
    $ini = IniReadSection($pfad & "GPW_1.ini", "version_size")
    For $i = 1 To $ini[0][0]

    [/autoit] [autoit][/autoit] [autoit]

    If $ini[$i][1] = $hardware[4] Then
    $version = $ini[$i][0]
    ExitLoop
    Else
    $version = "----"

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $flag = 0 Then
    MsgBox(65, " Fehler", "Ihr Medion-PNA wird nicht über diesen" & @CRLF & "Installer unterstützt. Bitte benutzen Sie den" & @CRLF & "GPW-PoiObs-Installer V 1.5.1" & @CRLF & @CRLF & "Programm wird beendet.")
    endscript()
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $version = "----" And $hardware[4] <> "-" Then
    $goGPW = MsgBox(36, " Fehler", "Ihre Gopal-Version wird nicht unterstützt." & @CRLF & "Sie haben die Möglichkeit dem GopalWorld-Skin-Team durch einen Klick auf YES ihre Gopal-Version mitzuteilen. Das Goaplworld-Skin-Team wird daraufhin ihre Version kompatibel machen." & @CRLF & @CRLF & "Möchten Sie uns Ihre Gopal-Version mitteilen?")
    If $goGPW = 6 Then
    ShellExecute("http://service.gopalworld.de/gopal.php?size=" & $hardware[4] & "&pna=" & $hardware[5] & "&version=" & $hardware[6] & "&winvers=" & $hardware[10] & "&Installer=GPW-PoiObs-Installer-V6")
    EndIf
    endscript()
    Exit
    EndIf
    If $version = "----" Then
    fehler()
    EndIf
    Else
    fehler()
    EndIf
    EndIf
    Else
    ftperror()
    EndIf
    Else
    fehler()
    EndIf
    EndIf
    ;~ ######################Ende der neuen Funktion

    [/autoit]

    Seht Ihr da was, was ich verändern könnte?
    Ich tippe auf den Abschnitt, nachdem das Script aus der encypt() zurück kommt....

  • Line: 9737. Error: Subscript used with non-Aray variable

    • Pitter
    • 3. März 2011 um 14:14

    Du hast ja Recht mit der Schlamperei...... :whistling:

    Ich bin eh dabei die Version zu überarbeiten, weil mal wieder ein paar Updates eingepflegt werden müssen...
    Bin ja froh, dass Du mich auf meine Fehler stösst. Ich nehm es mir zu Herzen und bau den Krempel mal komplett um...

  • Line: 9737. Error: Subscript used with non-Aray variable

    • Pitter
    • 3. März 2011 um 13:19

    global hab ich die definiert, weil ich $pfad noch mehrfach brauche in den weiteren au3...

    zu:$hardware1 = FileRead($pfad & 'hardware.txt')"
    Gut, das kannst Du nicht wissen, was da zwischendrin passiert. Aber das ist schon so in Ordnung, da ich:
    a: die Existenz der Datei abprüfe
    b: dort definitiv ein Eintrag vorhanden ist, weil ich diese hardware.txt über ein externes Programm auf dem PNA erstellen lasse... und diese liesst die REG des Gerätes aus und trägt in jedem Fall dort was ein.... und wenn es ein "-" ist.
    Klar... sauberer wäre das mit IsArray() zu arbeiten... stimmt! Kann aber hier doch eigentlich nicht zu dem benannten Fehler führen...

    TraySetIcon($pfad & "\car.ani")... stimmt... das ist ein Fehler... hab noch einen solchen Fehler gefunden...
    Nur komischerweise funktioniert das auf mehr als mittlerweile mehr als 5.000 Systemen... nur bei Systemen mit anderer Spracheinstellung nicht!!!
    Das ist ja das seltsame an der Geschichte... ;(

  • Line: 9737. Error: Subscript used with non-Aray variable

    • Pitter
    • 3. März 2011 um 12:46

    Naja...

    [autoit]

    $pfad = @TempDir & '\' & $SerialNumber & '\'

    [/autoit]

    Eine au3 kann ich nicht veröffentlichen, da ich die so dermassen einschrumpfen müsste, dass die nicht mehr lesbar wäre....
    Aber bereits in der gui.au3 müsste der Fehler auftreten, weil schon nach der Rückkehr aus der Update-Funktion das Problem auftritt.... :(

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Tidy_Stop_OnError=n
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

    [/autoit] [autoit][/autoit] [autoit]

    _IEErrorHandlerRegister()
    $oIE = _IECreateEmbedded()

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ############# Fenster für den Installer zusammenstellen
    $gui = GUICreate("GoPalWorld-PoiObs-Installer V6", 623, 436, -1, -1, BitOR($WS_SYSMENU, $WS_CAPTION, $WS_MINIMIZEBOX), 1)
    GUISetIcon($pfad & "earth_day.ico")
    GUISetFont(10, 400, 0, "MS Sans Serif")
    GUISetBkColor(0xA6CAF0)
    $Logo = GUICtrlCreatePic($pfad & "\Installer-Grafik_oben.jpg", 3, 3, 616, 96, BitOR($SS_NOTIFY, $WS_CLIPSIBLINGS))
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    $Logo2 = GUICtrlCreatePic($pfad & "\Installer-Grafik_links.jpg", 3, 98, 129, 333, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)

    [/autoit] [autoit][/autoit] [autoit]

    $ButtonGroup = GUICtrlCreateGroup("", 144, 328, 473, 105) ;~ Button-Gruppe für Paypal und Install-Buttons
    $Paypal = GUICtrlCreateButton("", 160, 352, 77, 49, $BS_BITMAP)
    GUICtrlSetImage(-1, $pfad & "\paypal.bmp", 0)
    $Label7 = GUICtrlCreateLabel("© GoPalWorld-Team 2008-2011", 150, 412, 193, 20)
    GUICtrlSetFont(-1, 6, 400, 0, "MS Sans Serif")
    $Install = GUICtrlCreateButton("", 504, 352, 101, 69, $BS_BITMAP)
    GUICtrlSetBkColor(-1, 0xFF0000)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ############# Anzeige der Lizenz
    $GUIActiveX = GUICtrlCreateObj($oIE, 146, 104, 469, 221)
    _IENavigate($oIE, $pfad & "lizenz.htm")
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ############# Entpacken des Skin-Ordners
    SplashOff()

    [/autoit] [autoit][/autoit] [autoit]

    $archive2 = $pfad & "GoPalWorld-Skin.7z"
    Run($pfad & '7za.exe' & ' x "' & $archive2 & '" ' & '' & "-y -o" & '"' & $pfad & '"', @TempDir, @SW_HIDE)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ############# Countdown für die Lizenz
    For $i = 10 To 1 Step -1
    GUICtrlSetData($Install, $i)
    Sleep(1000)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlDelete($Install)
    GUICtrlDelete($Label7)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ############# Buttons zum annehmen und Ablehnen
    $Annehmen = GUICtrlCreateButton("", 444, 345, 164, 81, $BS_BITMAP)
    GUICtrlSetImage(-1, $pfad & "\annehmen.bmp", 0)
    _GUICtrl_SetOnhover(-1, "_hover_Proc", "_Leave_hover_Proc", "PrimaryDown_Proc", "PrimaryUp_Proc")
    $Ablehnen = GUICtrlCreateButton("", 272, 345, 164, 81, $BS_BITMAP)
    GUICtrlSetImage(-1, $pfad & "\ablehnen.bmp", 0)
    _GUICtrl_SetOnhover(-1, "_hover_Proc", "_Leave_hover_Proc", "PrimaryDown_Proc", "PrimaryUp_Proc")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $Annehmen
    GUICtrlDelete($oIE)
    GUICtrlDelete($GUIActiveX)
    GUICtrlDelete($Annehmen)
    GUICtrlDelete($Ablehnen)
    ExitLoop
    Case $msg = $Paypal
    ShellExecute("https://www.paypal.com/*******************************+")
    Case $msg = $Ablehnen
    endscript()
    Exit
    EndSelect
    WEnd
    ;~ ############# Ende Buttons

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ############# 2. Seite im Installer
    $InstName = GUICtrlCreateLabel("GoPalWorld-POiObs-Installer V6", 144, 104, 470, 33, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $label2 = GUICtrlCreateLabel("WILLKOMMEN BEIM GPW-INSTALLER", 144, 152, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    $label3 = GUICtrlCreateLabel("Bitte stelle sicher, dass der PNA mit dem PC", 144, 176, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    $label4 = GUICtrlCreateLabel("korrekt verbunden und eingeschaltet bleibt!", 144, 200, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    $Label7 = GUICtrlCreateLabel("© GoPalWorld-Team 2008-2010", 150, 412, 193, 20)
    GUICtrlSetFont(-1, 6, 400, 0, "MS Sans Serif")
    $Install = GUICtrlCreateButton("", 504, 352, 101, 69, $BS_BITMAP)
    GUICtrlSetImage(-1, $pfad & "\go.bmp", 0)
    _GUICtrl_SetOnhover(-1, "_hover_Proc", "_Leave_hover_Proc", "PrimaryDown_Proc", "PrimaryUp_Proc")
    $Abbruch = GUICtrlCreateButton("", 392, 352, 101, 69, $BS_BITMAP)
    GUICtrlSetImage(-1, $pfad & "\stop.bmp", 0)
    _GUICtrl_SetOnhover(-1, "_hover_Proc", "_Leave_hover_Proc", "PrimaryDown_Proc", "PrimaryUp_Proc")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    endscript()
    Exit
    Case $msg = $Install
    #include "gpws_func_1.au3"
    ExitLoop
    Case $msg = $Paypal
    ShellExecute("https://www.paypal.com/**************************)
    Case $msg = $Abbruch
    endscript()
    Exit
    EndSelect
    WEnd
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    ;################################################
    ;###############Funktionen#######################
    ;################################################

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;~############# Encrypt-Tool
    Func encrypt()
    $file = FileOpen(@ScriptDir & "\GPW.ini", 0)
    If $file = -1 Or "" Then
    MsgBox(16, "ACHTUNG", "GPW.ini fehlt oder ist leer" & @CRLF & "oder beschädigt. " & @CRLF & "Bitte die INI erneut downloaden " & @CRLF & "und in den Install-Ordner legen!", 10)
    endscript()
    Exit
    EndIf
    FileClose($file)

    [/autoit] [autoit][/autoit] [autoit]

    $chars = FileRead(@ScriptDir & "\GPW.ini")

    [/autoit] [autoit][/autoit] [autoit]

    $sEncryptPassword = '***************************'
    $iEncryptLevel = '****'

    [/autoit] [autoit][/autoit] [autoit]

    $text = _StringEncrypt(0, $chars, $sEncryptPassword, $iEncryptLevel)

    [/autoit] [autoit][/autoit] [autoit]

    $inifile = FileOpen($pfad & "\GPW_2.ini", 2)
    FileWrite($inifile, $text)
    FileClose($inifile)
    EndFunc ;==>encrypt

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;~ ############## Fehlerfunktion bei FTP-Fehlern
    Func ftperror()
    MsgBox(16, "ACHTUNG", "Keine FTP-Verbindung möglich! " & @CRLF & "Bitte FTP in der Firewall freigeben," & @CRLF & "oder den Administrator bitten," & @CRLF & "den FTP-Zugang freizugeben!" & @CRLF & "" & @CRLF & "Der Installer wird nun beendet!", 10)
    endscript()
    Exit
    EndFunc ;==>ftperror

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ############## Funktion zum Beenden des Installers
    Func endscript()
    DirRemove($pfad, 1)
    Sleep(200)
    TraySetState(2)
    FileMove(@ScriptDir & "\update_1.txt", @ScriptDir & "\update.txt", 1)
    FileDelete(@ScriptDir & "\setup.txt")
    EndFunc ;==>endscript

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ############## Fehlermeldung bei der INI-Erkennung
    Func fehler()
    $goGPW = MsgBox(17, " Fehler", "Ihre Gopal-Version wird nicht unterstützt." & @CRLF & "Sie haben die Möglichkeit dem GopalWorld-Skin-Team durch einen Klick auf OK Ihre Gopal-Version mitzuteilen. Das GoPalWorld-Skin-Team wird daraufhin Ihre Version kompatibel machen." & @CRLF & @CRLF & "Möchten Sie uns Ihre Gopal-Version mitteilen?")
    If $goGPW = 1 Then
    ShellExecute("http://service.gopalworld.de/gopal.php?size=" & $hardware[4] & "&pna=" & $hardware[5] & "&version=" & $hardware[6] & "&installer= GPW-Skin-Installer")
    endscript()
    Exit
    Else
    endscript()
    Exit
    EndIf
    EndFunc ;==>fehler

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ############## Funktionen zur Animation der Buttons
    Func _hover_Proc($iCtrlID)
    Switch $iCtrlID
    Case $Annehmen
    GUICtrlSetImage($iCtrlID, $pfad & "\annehmen_hoover.bmp")
    Case $Ablehnen
    GUICtrlSetImage($iCtrlID, $pfad & "\ablehnen_hoover.bmp")
    Case $Install
    GUICtrlSetImage($iCtrlID, $pfad & "\go_hoover.bmp")
    Case $Abbruch
    GUICtrlSetImage($iCtrlID, $pfad & "\stop_hoover.bmp")
    Case $End
    GUICtrlSetImage($iCtrlID, $pfad & "\end_hoover.bmp")
    Case $Reboot
    GUICtrlSetImage($iCtrlID, $pfad & "\reboot_hoover.bmp")
    EndSwitch
    EndFunc ;==>_hover_Proc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Leave_hover_Proc($iCtrlID)
    Switch $iCtrlID
    Case $Annehmen
    GUICtrlSetImage($iCtrlID, $pfad & "\annehmen.bmp")
    Case $Ablehnen
    GUICtrlSetImage($iCtrlID, $pfad & "\ablehnen.bmp")
    Case $Install
    GUICtrlSetImage($iCtrlID, $pfad & "\go.bmp")
    Case $Abbruch
    GUICtrlSetImage($iCtrlID, $pfad & "\stop.bmp")
    Case $End
    GUICtrlSetImage($iCtrlID, $pfad & "\end.bmp")
    Case $Reboot
    GUICtrlSetImage($iCtrlID, $pfad & "\reboot.bmp")
    EndSwitch
    EndFunc ;==>_Leave_hover_Proc

    [/autoit] [autoit][/autoit] [autoit]

    Func PrimaryDown_Proc($iCtrlID)
    Switch $iCtrlID
    Case $Annehmen
    GUICtrlSetImage($iCtrlID, $pfad & "\annehmen_pressed.bmp")
    Case $Ablehnen
    GUICtrlSetImage($iCtrlID, $pfad & "\ablehnen_pressed.bmp")
    Case $Install
    GUICtrlSetImage($iCtrlID, $pfad & "\go_pressed.bmp")
    Case $Abbruch
    GUICtrlSetImage($iCtrlID, $pfad & "\stop_pressed.bmp")
    Case $End
    GUICtrlSetImage($iCtrlID, $pfad & "\end_pressed.bmp")
    Case $Reboot
    GUICtrlSetImage($iCtrlID, $pfad & "\reboot_pressed.bmp")
    EndSwitch
    EndFunc ;==>PrimaryDown_Proc

    [/autoit] [autoit][/autoit] [autoit]

    Func PrimaryUp_Proc($iCtrlID)
    Switch $iCtrlID
    Case $Annehmen
    GUICtrlSetImage($iCtrlID, $pfad & "\annehmen_hoover.bmp")
    Case $Ablehnen
    GUICtrlSetImage($iCtrlID, $pfad & "\ablehnen_hoover.bmp")
    Case $Install
    GUICtrlSetImage($iCtrlID, $pfad & "\go_hoover.bmp")
    Case $Abbruch
    GUICtrlSetImage($iCtrlID, $pfad & "\stop_hoover.bmp")
    Case $End
    GUICtrlSetImage($iCtrlID, $pfad & "\end_hoover.bmp")
    Case $Reboot
    GUICtrlSetImage($iCtrlID, $pfad & "\reboot_hoover.bmp")
    EndSwitch
    EndFunc ;==>PrimaryUp_Proc

    [/autoit]
  • Line: 9737. Error: Subscript used with non-Aray variable

    • Pitter
    • 3. März 2011 um 12:27

    Die gpws_gui.au3:

    Spoiler anzeigen
    [autoit]

    Local $chars, $text, $inifile, $i_EncryptLevel, $s_EncryptPassword, $text, $file

    [/autoit] [autoit][/autoit] [autoit]

    TraySetIcon($pfad & "\car.ani")
    TraySetState(4)
    GUICtrlDelete($Install)
    GUICtrlDelete($Abbruch)
    GUICtrlDelete($label6)

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists(@ScriptDir & "\*********") Then
    MsgBox(64, "ACHTUNG", "Es wird mit den Daten der ************** gearbeitet", 5)

    [/autoit] [autoit][/autoit] [autoit]

    FileCopy(@ScriptDir & "\dummy.txt", $pfad & "hardware.txt", 1)
    Else
    RunWait($pfad & 'cecopy.exe desk:' & $pfad & 'CDel.exe' & ' ' & '"' & 'dev:\My Flash Disk\temp\CDel.exe"', @ScriptDir, @SW_HIDE)

    [/autoit] [autoit][/autoit] [autoit]

    $progress = GUICtrlCreateProgress(144, 296, 470, 29, BitOR($PBS_SMOOTH, $WS_BORDER))
    $label6 = GUICtrlCreateLabel("PNA Analysescripte werden kopiert", 144, 248, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    RunWait($pfad & 'rapistart.exe ' & '"' & '\my flash disk\temp\hardware.exe' & '"', @ScriptDir, @SW_HIDE)
    GUICtrlDelete($label6)
    $label6 = GUICtrlCreateLabel("PNA Hard- und Software wird analysiert", 144, 248, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    For $x = 1 To 100 Step 1
    GUICtrlSetData($progress, $x)
    Sleep(90)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    RunWait($pfad & 'cecopy.exe /s ' & '"' & 'dev:\temp\hardware.txt' & '"' & ' ' & '"' & $pfad & 'hardware.txt' & '"', @TempDir, @SW_HIDE)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($pfad & 'hardware.txt') Then
    $hardware1 = FileRead($pfad & 'hardware.txt')
    GUICtrlDelete($progress)
    GUICtrlDelete($label6)
    $hardware = StringSplit($hardware1, "|")

    [/autoit] [autoit][/autoit] [autoit]

    if $hardware[10] = 6 Then
    MsgBox(4096, " Fehler", "Auf PNA mit Windows CE6.0" & @CRLF & "ist der PoiObserver derzeit nicht lauffähig!" & @CRLF & @CRLF & "Programm wird beendet")
    endscript()
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    if $hardware[4] = "-" Or $hardware[4] = "0" Then
    MsgBox(16, "ACHTUNG", "Die GoPal-Version konnte nicht erkannt werden!" & @CRLF & '' & @CRLF & "Bitte am PNA einen Hardreset machen und " & @CRLF & "GoPal neu installieren." & @CRLF & "Danach den Installer erneut aufrufen!" & @CRLF & "Falls das Problem erneut auftritt," & @CRLF & "bitte im Forum melden!", 30)
    endscript() ;~ gehe in Endscript-Funktion
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;############### Lauf in die Encrypt-Funktion
    encrypt() ;~ call encrypt-function
    ;############### Kommt aus der Encrypt-Funktion zurück

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(300)

    [/autoit] [autoit][/autoit] [autoit]

    FileMove($pfad & "\GPW_2.ini", $pfad & "\GPW_1.ini", 1)

    [/autoit] [autoit][/autoit] [autoit]

    $new_hardware = IniReadSection($pfad & "\GPW_1.ini", "new_PNAs")
    $flag = 0
    For $i = 1 To $new_hardware[0][0]
    If StringLeft($new_hardware[$i][1], 4) = StringLeft($hardware[5], 4) Then
    $flag = 1
    ;~ Global $new_display_size = $new_hardware[$i][0]
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $var = IniReadSection($pfad & "\GPW_1.ini", "version_path")
    $ini = IniReadSection($pfad & "\GPW_1.ini", "version_size")
    For $i = 1 To $ini[0][0]

    [/autoit] [autoit][/autoit] [autoit]

    If $ini[$i][1] = $hardware[4] Then
    $version = $ini[$i][0]
    ExitLoop
    Else
    $version = "----"
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    If $flag = 0 Then
    MsgBox(65, " Fehler", "Ihr Medion-PNA wird nicht über diesen" & @CRLF & "Installer unterstützt. Bitte benutzen Sie den" & @CRLF & @CRLF & "GPW-PoiObs-Installer V 1.5.1" & @CRLF & @CRLF & "Programm wird beendet.")
    endscript()
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $version = "----" Then
    ConsoleWrite("Version ausgelesen: " & $version & @CRLF)
    $update = MsgBox(49, "Update", "Das Programm hat die GoPal-Version" & @CRLF & "nicht erkannt!" & @CRLF & '' & @CRLF & "Möchten Sie Online auf ein Update prüfen?", 30)
    If $update = 1 Then
    FileClose($pfad & "\GPW_1.ini")
    FileDelete($pfad & "\GPW_1.ini") ;~ Ini im Klartext löschen

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ###################### Neue Funktion zum Update der GPW.INI
    ;~####### FTP-Daten
    $server = '*******'
    $username = '**********'
    $pass = '***************'
    $path = '/****************/'

    [/autoit] [autoit][/autoit] [autoit]

    $version_file = (@ScriptDir & "\Update.txt")
    $version_line = FileReadLine($version_file, 2)

    [/autoit] [autoit][/autoit] [autoit]

    $DownloadFile_1 = (@ScriptDir & "\Update_1.txt") ;~ dito
    $Ftp_FileName_1 = "Update.txt" ;~ Dateiname in Var schreiben

    [/autoit] [autoit][/autoit] [autoit]

    $Open = _FTP_Open('MyFTP Control') ;~ Öffne FTP
    If @error = 1 Then ftperror() ;~ Wenn kein FTP möglich, dann gehe in Fehler

    [/autoit] [autoit][/autoit] [autoit]

    $label6 = GUICtrlCreateLabel("FTP wird geöffnet...", 144, 248, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    Sleep(500)

    [/autoit] [autoit][/autoit] [autoit]

    $Conn = _FTP_Connect($Open, $server, $username, $pass) ;~ Verbinden mit dem FTP
    If @error = 1 Then ftperror() ;~ Wenn kein FTP möglich, dann gehe in Fehler

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlDelete($label6)

    [/autoit] [autoit][/autoit] [autoit]

    $label6 = GUICtrlCreateLabel("Anmelden am Server....", 144, 248, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    Sleep(500)

    [/autoit] [autoit][/autoit] [autoit]

    $FtpDir = _FTP_DirSetCurrent($Conn, $path) ;~ Wechseln des Standart-Verzeichnisses
    If @error = 1 Then ftperror() ;~ Wenn kein FTP möglich, dann gehe in Fehler

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlDelete($label6)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ftpd_1 = _FTP_ProgressDownload($Conn, $DownloadFile_1, $Ftp_FileName_1) ;~ Download mit Progressbar
    If $Ftpd_1 = 1 Then ;~ Kontrolle, ob File da ist
    Local $Ftpc = _FTP_Close($Open) ;~ FTP wieder schliessen

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($DownloadFile_1) Then ;~ Wenn File da ist
    $version_line_1 = FileReadLine($DownloadFile_1, 2) ;~ Lese Zeile 2
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $version_line = $version_line_1 Then ;~ Vergleiche Original-Update.txt mit neuer
    $version = "----"
    $goGPW = MsgBox(49, " Fehler", "Ihre Gopal-Version wird nicht unterstützt." & @CRLF & "Sie haben die Möglichkeit dem GopalWorld-Skin-Team durch einen Klick auf YES ihre Gopal-Version mitzuteilen. Das Goaplworld-Skin-Team wird daraufhin ihre Version kompatibel machen." & @CRLF & @CRLF & "Möchten Sie uns Ihre Gopal-Version mitteilen?", 30)
    If $goGPW = 1 Then
    ShellExecute("http://service.gopalworld.de/gopal.php?size=" & $hardware[4] & "&pna=" & $hardware[5] & "&version=" & $hardware[6] & "&winvers=" & $hardware[10] & "&Installer=GPW-PoiObs-Installer-V6")
    endscript()
    Exit
    Else
    MsgBox(65, " Fehler", "Diese Gopal Version " & @CRLF & "ist nicht mit diesem Skin kompatibel." & @CRLF & "Programm wird beendet.")
    endscript()
    Exit
    EndIf
    Else
    MsgBox(64, "Update!", "Es ist eine Neue Version verfügbar!")
    $fg = MsgBox(65, "Updaten?", "Möchten Sie jetzt Updaten?", 30)
    If $fg = 1 Then
    $DownloadIniFile = ($pfad & "\GPW_3.ini") ;~ Pfad in Var schreiben
    $Ftp_IniName = "GPW.ini" ;~ Dateiname in Var schreiben

    [/autoit] [autoit][/autoit] [autoit]

    $Open = _FTP_Open('MyFTP Control') ;~ Öffne FTP
    If @error = 1 Then ftperror()

    [/autoit] [autoit][/autoit] [autoit]

    $label6 = GUICtrlCreateLabel("FTP wird geöffnet...", 144, 248, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    Sleep(500)

    [/autoit] [autoit][/autoit] [autoit]

    $Conn = _FTP_Connect($Open, $server, $username, $pass) ;~ Verbinden mit dem FTP
    If @error = 1 Then ftperror() ;~ Wenn kein FTP möglich, dann gehe in Fehler

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlDelete($label6)
    $label6 = GUICtrlCreateLabel("Anmelden am Server....", 144, 248, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    Sleep(500)

    [/autoit] [autoit][/autoit] [autoit]

    $FtpDir = _FTP_DirSetCurrent($Conn, $path) ;~ Wechseln des Standart-Verzeichnisses
    If @error = 1 Then ftperror() ;~ Wenn kein FTP möglich, dann gehe in Fehler

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlDelete($label6)

    [/autoit] [autoit][/autoit] [autoit]

    Local $Ftpd_2 = _FTP_ProgressDownload($Conn, $DownloadIniFile, $Ftp_IniName) ;~ Download mit Progressbar

    [/autoit] [autoit][/autoit] [autoit]

    If $Ftpd_2 = 1 Then ;~ Kontrolle, ob File da ist
    Local $Ftpc = _FTP_Close($Open) ;~ FTP wieder schliessen
    Else
    $label6 = GUICtrlCreateLabel("DATEI WURDE NICHT GELADEN!", 144, 248, 470, 24, BitOR($SS_CENTER, $SS_CENTERIMAGE))
    Local $Ftpc = _FTP_Close($Open) ;~ FTP wieder schliessen
    Sleep(3000)
    endscript()
    Exit
    EndIf
    Sleep(200)
    FileMove($pfad & "\GPW_3.ini", @ScriptDir & "\GPW.ini", 1) ;~ Die runtergeladene INI umbenennen zum Weiterverarbeiten

    [/autoit] [autoit][/autoit] [autoit]

    ;############### Lauf in die Encrypt-Funktion
    encrypt() ;~ call encrypt-function
    ;############### Kommt aus der Encrypt-Funktion zurück

    [/autoit] [autoit][/autoit] [autoit]

    $new_hardware = IniReadSection($pfad & "\GPW_1.ini", "new_PNAs")
    $flag = 0
    For $i = 1 To $new_hardware[0][0]
    If StringLeft($new_hardware[$i][1], 4) = StringLeft($hardware[5], 4) Then
    $flag = 1
    ;~ Global $new_display_size = $new_hardware[$i][0]
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $var = IniReadSection($pfad & "\GPW_1.ini", "version_path")
    $ini = IniReadSection($pfad & "\GPW_1.ini", "version_size")
    For $i = 1 To $ini[0][0]

    [/autoit] [autoit][/autoit] [autoit]

    If $ini[$i][1] = $hardware[4] Then
    $version = $ini[$i][0]
    ExitLoop
    Else
    $version = "----"

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $flag = 0 Then
    MsgBox(65, " Fehler", "Ihr Medion-PNA wird nicht über diesen" & @CRLF & "Installer unterstützt. Bitte benutzen Sie den" & @CRLF & "GPW-PoiObs-Installer V 1.5.1" & @CRLF & @CRLF & "Programm wird beendet.")
    endscript()
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $version = "----" And $hardware[4] <> "-" Then
    $goGPW = MsgBox(36, " Fehler", "Ihre Gopal-Version wird nicht unterstützt." & @CRLF & "Sie haben die Möglichkeit dem GopalWorld-Skin-Team durch einen Klick auf YES ihre Gopal-Version mitzuteilen. Das Goaplworld-Skin-Team wird daraufhin ihre Version kompatibel machen." & @CRLF & @CRLF & "Möchten Sie uns Ihre Gopal-Version mitteilen?")
    If $goGPW = 6 Then
    ShellExecute("http://service.gopalworld.de/gopal.php?size=" & $hardware[4] & "&pna=" & $hardware[5] & "&version=" & $hardware[6] & "&winvers=" & $hardware[10] & "&Installer=GPW-PoiObs-Installer-V6")
    EndIf
    endscript()
    Exit
    EndIf
    If $version = "----" Then
    fehler()
    EndIf
    Else
    fehler()
    EndIf
    EndIf
    Else
    ftperror()
    EndIf
    Else
    fehler()
    EndIf
    EndIf
    ;~ ######################Ende der neuen Funktion

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $version_type = StringLeft($version, StringLen($version) - 3)
    $version_number = StringRight($version, 3)
    ConsoleWrite($version_type & $version_number & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    AdlibUnRegister()

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlDelete($label2)
    GUICtrlDelete($label6)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $hardware[6] = "-" Then
    MsgBox(16, "ACHTUNG", " Keine Speicher-Karte vorhanden " & @CRLF & "oder Speicher-Karte voll!" & @CRLF & '' & @CRLF & " Bitte Karte einsetzen und Programm neu starten.", 20)
    endscript()
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $pfad1 = $pfad & '\' & 'GoPalWorld-Skin'
    $dirsize = (DirGetSize($pfad1, 0)) ;~ Grösse des Installations-Ordners ermitteln
    $dirsizeround = Round($dirsize / 1024 / 1024, 2) ;~ Ergebnis runden in MB
    $installsize = ($dirsizeround - 6.00) ;~ Rundungsergebnis ./. 2 MB
    $speicher = Round($hardware[7] / 1024 / 1024, 2) ;~ SD-Karten freier Platz runden in MB
    If $speicher <= 0 Then ;~ ist der Speicherplatz kleiner als 0 (Falschmeldung der Hardware.exe bei Minus-Ausgabe)
    $speicher = ($speicher * - 1) ;~ mit -1 multiplizieren, um ein positives Ergebnis zu bekommen
    EndIf
    $bedarf = ($installsize - $speicher) ;~ Speicherbedarf berechnen

    [/autoit] [autoit][/autoit] [autoit]

    If $speicher <= $installsize Then ;~ Wenn der Speicherplatz auf der SD kleiner ist als der Installation-Bedarf, dann Fehler
    MsgBox(16, "ACHTUNG", "Zu wenig Speicherplatz auf der Speicherkarte!" & @CRLF & '' & @CRLF & "Es sind nur " & $speicher & "MB statt benötigter " & $installsize & "MB frei!" & @CRLF & "Bitte Speicher-Karte um " & $bedarf & "MB bereinigen, " & @CRLF & "oder grössere Karte einsetzen und Programm neu starten!", 30)
    endscript() ;~ gehe in Endscript-Funktion
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlDelete($label2)
    $label2 = GUICtrlCreateLabel("Das Gerät ist ein ----> " & $hardware[5], 144, 152, 470, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If StringLeft(StringRight($hardware[5], 4), 1) = 5 Then

    [/autoit] [autoit][/autoit] [autoit]

    $hardware[1] = "Sirf"
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlDelete($label3)
    GUICtrlDelete($label4)
    GUICtrlDelete($label5)
    GUICtrlDelete($label6)

    [/autoit] [autoit][/autoit] [autoit]

    $label3 = GUICtrlCreateLabel("Das System arbeitet mit einem " & $hardware[1] & " Prozessor. ", 144, 176, 470, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))
    $label4 = GUICtrlCreateLabel("Folgende GoPal-Software ist installiert: " & $version_type & " " & $version_number, 144, 200, 470, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))
    If $hardware[2] == "mfd" And $hardware[3] = "sd" Then
    $label5 = GUICtrlCreateLabel("POIObs-Sourcen auf MFD und SD, Ziel auswählen ->", 144, 224, 420, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))
    $poibs_ins = GUICtrlCreateCombo("", 560, 224, 55, 55)
    GUICtrlSetData(-1, "--|mfd|sd", "mfd")
    ElseIf $hardware[2] == "mfd" And $hardware[3] = "-" Then
    $label5 = GUICtrlCreateLabel("POIObs-Sourcen auf MFD, Ziel auswählen ->", 144, 224, 420, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))
    $poibs_ins = GUICtrlCreateCombo("", 560, 224, 55, 55)
    GUICtrlSetData(-1, "--|mfd", "mfd")
    ElseIf $hardware[2] == "-" And $hardware[3] = "sd" Then
    $label5 = GUICtrlCreateLabel("POIObs-Sourcen auf SD, Ziel auswählen ->", 144, 224, 420, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))
    $poibs_ins = GUICtrlCreateCombo("", 560, 224, 55, 55)
    GUICtrlSetData(-1, "--|mfd|sd", "sd")
    Else
    if (FileExists(StringLeft(@SystemDir, 2) & "\myNFPOIs\POIObserver\PoiObserver.exe") And FileExists(StringLeft(@SystemDir, 2) & "\myNFPOIs\POIObserver\VirtComMgr.exe")) Then
    $label5 = GUICtrlCreateLabel("PoiObserver-Source auf " & StringLeft(@SystemDir, 2) & ", PoiObs installieren->", 144, 224, 420, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))
    $poibs_ins = GUICtrlCreateCombo("", 560, 224, 55, 55)
    GUICtrlSetData(-1, "--|sd|mfd", "mfd")
    ;~ ==============================
    ;~ NEU !!!!!!!!!!!!!!!!!!!!!!!!
    $file_path = "C:\myNFPOIs\POIObserver\"
    ;~ ==============================
    $poiobs_lokal = 1
    Else
    $label5 = GUICtrlCreateLabel("Keine POIOBServer-Sourcen gefunden!", 144, 224, 420, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))
    ;~ ==============================
    ;~ NEU !!!!!!!!!!!!!!!!!!!!!!!!
    MsgBox(0, "ACHTUNG", "Bitte den Ordner Poiobserver selber suchen!" & @CRLF & " " & @CRLF & "Sollte der Ordner nicht da sein," & @CRLF & "bitte das Newbiepack von" & @CRLF & "www.navifriends.com" & @CRLF & "nach Anmeldung downloaden" & @CRLF & "und auf dem PC installieren!" & @CRLF & " " & @CRLF & "Danach den Installer nochmals ausführen!", 10)
    $file_path = FileSelectFolder("PoiObs bitte selbst suchen", "", 4)
    GUICtrlDelete($label5)
    ConsoleWrite("filepath = " & $file_path )
    if (FileExists($file_path & "\PoiObserver.exe"))Then
    $label5 = GUICtrlCreateLabel("POIOBServer-Sourcen auf dem PC im Ordner", 144, 224, 420, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))
    $label6 = GUICtrlCreateLabel($file_path & " Ziel auswählen ->", 144, 248, 470, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))

    [/autoit] [autoit][/autoit] [autoit]

    $poibs_ins = GUICtrlCreateCombo("", 560, 224, 55, 55)
    GUICtrlSetData(-1, "--|sd|mfd", "mfd")
    $poiobs_lokal = 1
    Else
    GUICtrlDelete($label2)
    GUICtrlDelete($label3)
    GUICtrlDelete($label4)
    GUICtrlDelete($label5)
    $label4 = GUICtrlCreateLabel("POIOBServer-Sourcen nicht gefunden!", 144, 200, 420, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))
    $label5 = GUICtrlCreateLabel("Bitte das Newbiepack von Navifriends installieren!", 144, 224, 420, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))
    $label6 = GUICtrlCreateLabel("Das Programm wird beendet! ", 144, 248, 470, 24, BitOR($SS_LEFT, $SS_CENTERIMAGE))
    Sleep(10000)
    endscript()
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ==============================
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndIf
    TraySetIcon()

    [/autoit] [autoit][/autoit] [autoit]

    $Install = GUICtrlCreateButton("", 504, 352, 101, 69, $BS_BITMAP)
    GUICtrlSetImage(-1, $pfad & "\go.bmp", 0)
    _GUICtrl_SetOnhover(-1, "_hover_Proc", "_Leave_hover_Proc", "PrimaryDown_Proc", "PrimaryUp_Proc")
    $Abbruch = GUICtrlCreateButton("", 392, 352, 101, 69, $BS_BITMAP)
    GUICtrlSetImage(-1, $pfad & "\stop.bmp", 0)
    _GUICtrl_SetOnhover(-1, "_hover_Proc", "_Leave_hover_Proc", "PrimaryDown_Proc", "PrimaryUp_Proc")

    [/autoit] [autoit][/autoit] [autoit]

    If $hardware[7] = "-" Then
    GUICtrlDelete($Install)
    MsgBox(4096, " Fehler", "Keine Speicherkarte gefunden " & @CRLF & " Programm wird beendet")
    endscript()
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    endscript()
    Exit
    Case $msg = $Install
    #include "GPWs_func_3.au3"
    ExitLoop
    Case $msg = $Paypal
    ShellExecute("https://www.paypal.com/********************+")
    Case $msg = $Abbruch
    endscript()
    Exit
    EndSelect
    WEnd
    Else
    MsgBox(4096, " Fehler", "Keine Hardware.txt!" & @CRLF & " Programm wird beendet")

    [/autoit] [autoit][/autoit] [autoit]

    EndIf

    [/autoit]
  • Line: 9737. Error: Subscript used with non-Aray variable

    • Pitter
    • 3. März 2011 um 12:18

    Das Problem ist bei mir halt nicht nachvollziehbar....

    Hier also dann die Installer.au3... Weiterhin sind da dann noch weitere au3, die dann im weiteren Verlauf includiert werden.

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=GPW_BASE\GPW.ico
    #AutoIt3Wrapper_outfile=GPW-POiObs-Installer-V6.0.2.exe
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_Res_Comment=GoPalWorld PoiObs Installer
    #AutoIt3Wrapper_Res_Description=Für die Installation des POiObservers
    #AutoIt3Wrapper_Res_Fileversion=6.0.1.26
    #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
    #AutoIt3Wrapper_Res_LegalCopyright=Peter Pliquet
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Run_Tidy=y
    #AutoIt3Wrapper_Tidy_Stop_OnError=n
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

    [/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    #include <Constants.au3>
    #include <IE.au3>
    #include <File.au3>
    #include <Array.au3>
    #include <GuiButton.au3>
    #include <GUIConstants.au3>
    #include <String.au3>
    #include <GUICtrlSetOnHover_UDF.au3>
    #include <FTPEx.au3>

    [/autoit] [autoit][/autoit] [autoit]

    OnAutoItExitRegister("endscript")
    Opt("TrayMenuMode", 3)
    Opt("WinTitleMatchMode", 2)
    ;~ Opt("MustDeclareVars", 1)
    TraySetToolTip("GoPalWorld PoiObs Installer V6.0")
    Global $gui, $background, $msg, $var1, $var2, $Input_1, $pfad, $file_1, $count, $source, $dest, $poiobs_lokal, $end, $skin_line, $skin_line_3, $skin_ini, $file_path
    Global $Paypal, $Ablehnen, $Annehmen, $Abbruch, $Install, $Logo, $Logo2, $reboot, $inifile, $ini, $update_ini, $update_line, $new_display_sizeMoin
    Global $progress, $label1, $label2, $label3, $label4, $label5, $label6, $label_6a, $label_6b, $label_7, $hardware, $stream, $label_8, $label_9, $x
    Global $poibs_ins, $temp1, $temp2, $temp3, $temp4, $var, $i, $pass2, $label1, $sat, $lizenz, $ini, $version, $version_type, $version_number, $label2, $foo, $line, $fl, $dest
    Global $pfad = @ScriptDir & "\Buttons"
    Dim $temp4 = 0, $temp5 = 0, $timer = 0, $ColorToggle = 1, $satpos = 80, $schleife = 1, $update = 1, $search, $updatepfad, $file
    $poiobs_lokal = 0
    $Characters = StringSplit("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789", "")
    $SerialNumber = ""
    For $x = 1 To 5
    For $i = 1 To 5
    $SerialNumber &= $Characters[Random(1, 61, 1)]
    Next
    If $x <> 5 Then $SerialNumber &= ""
    Next
    $pfad = @TempDir & '\' & $SerialNumber & '\'
    DirRemove($pfad, 1)
    Sleep(1000)
    DirCreate($pfad)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ########### Includierte Dateien
    FileInstall("GPW_BASE\7za.exe", $pfad & "7za.exe")
    FileInstall("GPW_BASE\cecopy.exe", $pfad)
    FileInstall("GPW_BASE\rapistart.exe", $pfad)
    FileInstall("GPW_BASE\lizenz.htm", $pfad, 1)
    FileInstall("GPW_BASE\reboot.exe", $pfad, 1)
    FileInstall("GPW_BASE\hardware.exe", $pfad)
    FileInstall("GPW_BASE\GoPalWorld-Skin.7z", $pfad & "GoPalWorld-Skin.7z", 1)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ########### Buttons und Bitmaps
    FileInstall("GPW_BASE\Buttons\car.ani", $pfad, 1)
    FileInstall("GPW_BASE\Buttons\stop_pressed.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\stop_hoover.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\stop.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\go.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\go_hoover.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\go_pressed.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\annehmen.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\annehmen_hoover.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\annehmen_pressed.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\ablehnen.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\ablehnen_hoover.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\ablehnen_pressed.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\reboot.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\reboot_hoover.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\reboot_pressed.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\end.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\end_hoover.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\end_pressed.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\Installer-Grafik_oben.jpg", $pfad)
    FileInstall("GPW_BASE\Buttons\Installer-Grafik_links.jpg", $pfad)
    FileInstall("GPW_BASE\Buttons\paypal.bmp", $pfad)
    FileInstall("GPW_BASE\Buttons\Splash.bmp", $pfad)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ########### SplashImage vor dem Start des Installer-Fensters
    SplashImageOn("Start", $pfad & "Splash.bmp", 487, 159, -1, -1, 2)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ######################

    [/autoit] [autoit][/autoit] [autoit]

    $setuptxt = '"dev:\setup.txt"'
    $test = $pfad & 'cecopy.exe desk:' & $pfad & 'hardware.exe' & ' ' & '"' & 'dev:\my flash disk\temp\hardware.exe"'
    $foo = Run($test, @ScriptDir, @SW_HIDE, $STDOUT_CHILD)
    Sleep(1500)

    [/autoit] [autoit][/autoit] [autoit]

    $line = StdoutRead($foo)
    If Not StringInStr($line, "syncing", 0) Then
    ProcessClose("cecopy.exe")
    MsgBox(16, "FEHLER", "Kein PNA gefunden. Programm wird beendet", 5, $gui)
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ########### Erkennung der OS-Version des PC
    If @OSType = "WIN32_NT" Then
    If @OSVersion = "WIN_VISTA" Then
    If Not ProcessExists("wmdhost.exe") Then
    WinClose("Verbindungsprüfung")
    MsgBox(0, "", "MobileDeviceCenter läuft nicht. Programm wird beendet", 10)

    [/autoit] [autoit][/autoit] [autoit]

    Exit
    EndIf
    ElseIf @OSVersion = "WIN_7" Then
    If Not ProcessExists("wmdhost.exe") Then
    WinClose("Verbindungsprüfung")
    MsgBox(0, "", "MobileDeviceCenter läuft nicht. Programm wird beendet", 10)

    [/autoit] [autoit][/autoit] [autoit]

    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ElseIf @OSVersion = "WIN_XP" Then
    If Not ProcessExists("WCESMgr.exe") Then
    WinClose("Verbindungsprüfung")
    MsgBox(16, "", "ActiveSync läuft nicht. Programm wird beendet", 10)

    [/autoit] [autoit][/autoit] [autoit]

    Exit
    EndIf
    EndIf
    Else
    WinClose("Verbindungsprüfung")
    MsgBox(16, "", "Dieses Betriebsystem wird nicht unterstützt", 10)
    EndIf
    TraySetIcon("car.ani")
    TraySetState()

    [/autoit] [autoit][/autoit] [autoit]

    While Not StringInStr($line, ":990", 0) And Not StringInStr($line, ":5678", 0) And Not StringInStr($line, ":5679", 0)
    $foo = Run("netstat -ano ", @ScriptDir, @SW_HIDE, $STDOUT_CHILD)
    Sleep(1000)
    $line = StdoutRead($foo)

    [/autoit] [autoit][/autoit] [autoit]

    WEnd
    TraySetState(8)

    [/autoit] [autoit][/autoit] [autoit]

    #include "gpws_file_check.au3"
    #include "gpws_gui.au3"

    [/autoit]
  • Line: 9737. Error: Subscript used with non-Aray variable

    • Pitter
    • 3. März 2011 um 12:00

    Naja...
    Was wollt Ihr haben? Den ganzen Code? Das sind mehr als 1.500 Zeilen. Ich denke nicht, dass das sinnvoll ist.
    Ich denke eher, dass ich da irgendeine Einstellung beim kompilieren ändern muss, damit der Installer auch auf anderssprachigen Windows-Versionen läuft.

  • Line: 9737. Error: Subscript used with non-Aray variable

    • Pitter
    • 3. März 2011 um 11:41

    Hallo zusammen,

    ein paar ausländische User haben ein Problem mit unseren Installern, die ich mit AutoIt erstellt habe.
    Wir haben herausfinden können, dass sobald ein User seinen PC zwar mit deutscher Windows-Version, aber mit anderer Spracheinstellung benutzen, diese Fehlermeldung auftritt: Line: 9737. Error: Subscript used with non-Aray variable

    Zitat eines Userpostings:

    Zitat

    Ursache:
    Windows Deutsch, Sprache eingestellt Russisch
    Entscheidung:
    Muss Deutsche Sprach eingestellt sein

    Was kann ich tun, um das zu vermeiden?

  • Textfile ändern

    • Pitter
    • 16. Januar 2011 um 12:28

    Hallo autoBert,

    danke für den Schubs... genau das, was ich brauchte. :thumbup:

  • Textfile ändern

    • Pitter
    • 16. Januar 2011 um 11:54

    Hallo zusammen,

    hab schon ne Weile gesucht, aber nichts wirklich passendes finden können.

    Folgende Problemstellung:

    Ich habe eine Textdatei mit ca. 62.000 Zeilen.
    Innerhalb dieser Datei liegt an 5 Stellen eine Zeile, die ich gerne ersetzen möchte, falls meine Vorlauf-Exe da einen bestimmten Wert in eine INI schreibt.
    Die auszutauschende Zeile ist immer identisch und nicht variabel:

    Das sind die Original-Zeilen:
    TextFormat: "%16777221;^F13^ m"

    Diese sollen alle ausgetauscht werden gegen diese Zeile:
    TextFormat: "(%F(cmp;%16777221;<3)?0^F150^ m:%F(Calc;%16777221;-47)^F13^ m)";

    Wie kann ich das am schnellsten und am effektifsten machen?
    Habt Ihr da ne Idee für mich?

    Gruß
    Pitter

  • SD-Karten-Zustand überprüfen

    • Pitter
    • 3. Dezember 2010 um 23:32

    Vom Prinzip her gute Idee...
    allerdings laufen beide Tools nicht unter CE5.0...

  • SD-Karten-Zustand überprüfen

    • Pitter
    • 3. Dezember 2010 um 17:47

    Zum Hintergrund:

    Ich habe einige "Installer" mit AutoIt gebaut, die über Active Sync (Windows Mobile Gerätecenter) mittels CE-Tools Dateien kopiert und dann einen dann auf dem Gerät vorhandenen Installer "anschiebt". Das Ganze sind Skin- und POi-Observer-Installer für Pocketnavigations-Geräte, die dem User das aufwändige rumhantieren mit der Registry und dem umständlichen Ändern von Systemeinträgen abnehmen soll.

    So weit, so gut...

    allerdings haben wir es öfter mit "Kollegen" zu tun, die sich nicht um ihre SD-Karte kümmern und diese in jämmerlichem Datenzustand befinden.
    Das führt dazu, dass die SD-Karte möglicherweise Daten nicht speichern kann, da Fehler in der Formatierung der SD vorliegen. Zwangsläufig kommt es dann zu Fehlern in der Darstellung, oder dass ein Tool garnicht funktioniert, weil die entsprechenden Dateien sich nach der Installation einfach nciht auf der SD-Karte befinden.

    Meine Idee wäre jetzt, eine Art Fehlerprüfung der über Active Sync angeschlossenen SD-Karte fest mit in den in AutoIt geschriebenen Installer zu integrieren.
    Falls diese dann Fehler finden sollte, könnte man dem User eine Sicherung auf die Festplatte anbieten, dann eine Formatierung der SD-Karte vornehmen lassen und nach erfolgter Rücksicherung dann den Aufruf des eigentlichen Installers erfolgen lassen.... So weit die Theoretische Wunschvorstellung... 8)

    Ich habe allerdings noch keine Idee, wie/ und ob man das mit AutoIt darstellen könnte.... alleine dass der Zugriff nur über Active Sync erfolgen kann ärgert mich da leider.

    Hat einer von euch da vielleicht eine zündende Idee??? ?(

    Gruß
    Pitter

  • Subscript used with non-Array variable

    • Pitter
    • 19. Oktober 2010 um 23:50

    Du hast ja Recht....

    muss dann wohl am Encrypt-Tool ansetzen. Mal sehen, wie ich das geschaukelt bekomme. Solche diffusen Fehlermeldungen nerven nämlich....

    Danke für Eure Tipps!!!

    Gruß
    Pitter

  • Subscript used with non-Array variable

    • Pitter
    • 19. Oktober 2010 um 22:12

    Hallo Schnitzel,
    klar... selbstverständlich geht die Geschichte.

    Mich stört nur, dass ich da keine vernünftige Fehlermeldung generieren kann, wenn der User z.B. die INI versucht hat zu manipulieren vor dem entschlüsseln.... jedenfalls weiss ich nicht wie.

    Die INI musste ich frei mit in den Source-Ordner packen, da ich eine Update-Funktion mit eingebaut habe, die bei bestimmten Fehlern nach einer neuen INI schaut.
    Diese INI enthält wichtige Details zum Installer und ich wäre blööd, wenn ich die offen mit anbieten würde. Deshalb auch der Umweg über das ver - und entschlüsseln.

    Ich hätte halt nur gerne eine Möglichkeit, dem User nicht mit einer cryptischen Fehlermeldung zu kommen ala subscript used with non-Array variable.

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™