Kombination C-Proggie auf CE5.0 und AutoIt auf PC



  • Hallo zusammen,

    da ich nicht wusste wo ich das hinpacken sollte hab ich das mal hier gepostet. Falls das hier nicht richtig sein sollte, bitte verschieben...

    Folgende Problemstellung:

    Ich benutze eine Setup.exe auf AutoIt-Basis auf dem PC und installiere damit Programme auf einem über USB und Actve Sync angeschlossenen Gerät mit CE 5.0.

    Die Setup.exe kopiert Dateien und Ordner über CECopy /s auf das CE-System und schiebt dann einen Installer auf dem CE-System an. Nachdem der Installer dann fertig ist, müssen im AutoIt-Proggie noch Fehlerroutinen ablaufen. Ich muss also in AutoIt feststellen können, wann der Installer auf dem CE-Gerät fertig ist, damit ich:

    • nicht zu früh mit den Fehlerroutinen anfange
    • nicht zu lange Sleeps einbauen muss

    Bislang mache ich das so, dass ich im Installer auf dem CE-Gerät am Ende eine kleine Textdatei erstelle:

    src = _wfopen(L"\\Storage Card\\setup.txt\0", L"w");
    			wcscpy(variable, L"-\n");
    			fputws(variable, src);
    			fclose(src);
    

    In AutoIt warte ich dann in einer While-Schleife auf die Setup.txt:

    While 1
    		GUICtrlSetData($progress, $x)             ;~ Fortschrittsbalken hoch stellen 
    		Run($pfad & 'cecopy.exe  ' & $setuptxt & '  ' & '"' & @ScriptDir & '\setup.txt' & '"', @ScriptDir, @SW_HIDE)
    		If WinExists("No Device Connected") Then  ;~ Sicherheits-Abfrage, ob der User den PNA ausgemacht hat...
    			WinClose("No Device Connected")
                            MsgBox(16, "Installation abgebrochen", "Bitte das Gerät während der Installation angeschlossen lassen!", 10)
    			Exit
    		EndIf
    		Sleep(1000)                               ;~ Sleep eingefügt um die Systembelastung zu minimieren
    		$x = $x + 4                               ;~ Fortschrittsbalken
    		If $x > 90 Then $x = 90
    		If FileExists(@ScriptDir & '\setup.txt') Then ExitLoop
    	WEnd
    

    Das funktioniert auch so weit...
    Ich würde aber gerne wissen, ob es evtl. eine bessere Lösung für diese Geschichte gibt?!?

    Hat da jemand ne Idee zu??? 😕



  • Hmmm... ist die Fragestellung so ungewöhnlich, oder nur zu DAU-mässig?



  • Pitter (c) schrieb:

    Hallo zusammen,

    da ich nicht wusste wo ich das hinpacken sollte hab ich das mal hier gepostet. Falls das hier nicht richtig sein sollte, bitte verschieben...

    Folgende Problemstellung:

    Ich benutze eine Setup.exe auf AutoIt-Basis auf dem PC und installiere damit Programme auf einem über USB und Actve Sync angeschlossenen Gerät mit CE 5.0.

    Die Setup.exe kopiert Dateien und Ordner über CECopy /s auf das CE-System und schiebt dann einen Installer auf dem CE-System an. Nachdem der Installer dann fertig ist, müssen im AutoIt-Proggie noch Fehlerroutinen ablaufen. Ich muss also in AutoIt feststellen können, wann der Installer auf dem CE-Gerät fertig ist, damit ich:

    • nicht zu früh mit den Fehlerroutinen anfange
    • nicht zu lange Sleeps einbauen muss

    Bislang mache ich das so, dass ich im Installer auf dem CE-Gerät am Ende eine kleine Textdatei erstelle:

    src = _wfopen(L"\\Storage Card\\setup.txt\0", L"w");
    			wcscpy(variable, L"-\n");
    			fputws(variable, src);
    			fclose(src);
    

    In AutoIt warte ich dann in einer While-Schleife auf die Setup.txt:

    While 1
    		GUICtrlSetData($progress, $x)             ;~ Fortschrittsbalken hoch stellen 
    		Run($pfad & 'cecopy.exe  ' & $setuptxt & '  ' & '"' & @ScriptDir & '\setup.txt' & '"', @ScriptDir, @SW_HIDE)
    		If WinExists("No Device Connected") Then  ;~ Sicherheits-Abfrage, ob der User den PNA ausgemacht hat...
    			WinClose("No Device Connected")
                            MsgBox(16, "Installation abgebrochen", "Bitte das Gerät während der Installation angeschlossen lassen!", 10)
    			Exit
    		EndIf
    		Sleep(1000)                               ;~ Sleep eingefügt um die Systembelastung zu minimieren
    		$x = $x + 4                               ;~ Fortschrittsbalken
    		If $x > 90 Then $x = 90
    		If FileExists(@ScriptDir & '\setup.txt') Then ExitLoop
    	WEnd
    

    Das funktioniert auch so weit...
    Ich würde aber gerne wissen, ob es evtl. eine bessere Lösung für diese Geschichte gibt?!?

    Hat da jemand ne Idee zu??? 😕



  • ...und was soll jetzt bitteschön das Komplett-Zitat, ohne irgendeine Antwort, oder Korrektur?

    Aber Danke für das pushen...

    Die Fragestellung ist nämlich immer noch aktuell.


Anmelden zum Antworten