Selbsextrahiernde exe mit Lizenzabfrage Problem

  • Hallo zusammen,

    ich möchte ein Autoit Prog gerne als selbstextrahierendes File mit Lizenz zum Abwinken erstellen.
    Dazu nutzte ich bisher das windowseigene Iexpress.exe von der Commandline.
    Jetzt habe ich aber das Problem, dass ich ein für x64-Systeme compiliertes Autoit Prog da nicht reinladen kann.
    Womöglich geht es unter einem 64bit System. Das habe ich aber nicht.
    Habt ihr Alternativen für Iexpress oder eine Idee?

    Also nochmal sortiert: Ich würde gerne unter 32bit Windows ein selbstentpackendes Archiv mit einem 64bit Autoit Prog darin erstellen, mit Lizenzabfrage.
    Das Prog soll gar nicht starten. Es soll nur in ein angegebenes Verzeichnis extrahiert werden.
    Mit bestem Gruß in die Runde,
    Jens

    Einmal editiert, zuletzt von Trubadour (1. September 2013 um 13:55)

  • Und wieso sollte das nicht mit IExpress funktionieren? Du erstellst ein Programm um Dateien zu packen / extrahieren, da besteht überhaupt kein Zusammenhang zu dem Typ / Format der ausführbaren Datei.

    Edit: Und sollte das bei dir wirklich nicht funktionieren kannst du den Installer ja immer noch mit AutoIt erstellen, das ist auch nicht sehr schwer.

  • Hallo James,

    das 64bit Prog taucht in der Auswahlliste von Iexpress gar nicht erst zum Einfügen auf. Und Drag and Drop geht da auch nicht. Ist wohl noch DOS. Und zum Selberschreiben fehlt mir momentan die Zeit. Wenn es keine gute Alternative gibt, komme aber wohl nicht drum rum.

    Vielleicht hat aber ja noch wer eine Idee.

  • Es taucht nicht auf?
    Du bist doch irgendwann im Bereich "Packaged files," oder? Dort klickst du dann auf "Add" und erhälst ein normales Dateiauswahlfenster, in diesem muss dein Programm angezeigt werden, da dort alle Dateien angezeigt werden. Oder hast du eine andere Version von IExpress als 2.0?

  • Ich habe Version 2.0 und ich kann mir auch vorstellen, warum es nicht klappt. Iexpress bietet nämlich auch die Möglichkeit, das Prog dann direkt zu starten. Das würde auf einem 32 bit System sofort zu einem Fehler führen.
    Ich arbeite sonst auch mit Iexpress. Einen Anwendungsfehler meinerseits schließe ich aus. Das Dateifenster enthält die 64bit exe einfach gar nicht erst????

  • Hi,
    gibt es einen Grund, wieso du das AutoIt-Programm nicht als 32 Bit-EXE kompilierst?
    Seit es den 64-Bit-Modus gibt habe ich sicher hunderte von Tools für beide Plattformen geschrieben aber noch nicht ein einziges man zwingend 64 Bit benötigt.
    Selbst beim Einbinden von dll´s hat man zu 99% die Wahl, eine 32-Bitversion zu verwenden. Andernfalls kompiliert man die dll einfach für x32.

  • Hallo Andy,

    es ist ein Versuch, da das Prog auf euinem 64bit System anscheinend immer wieder abstürzte. Oder habe ich da irgendwelche Häckchen falsch gesetzt, so dass es nur für 32bit compiled wird?
    dlls binde ich gar nicht mit ein.

  • Ich arbeite sonst auch mit Iexpress. Einen Anwendungsfehler meinerseits schließe ich aus. Das Dateifenster enthält die 64bit exe einfach gar nicht erst????


    Wenn wir so weitermachen hast du dein Problem auch in zehn Jahren noch.
    Ich habe ja vorhin schon versucht zu erklären, dass dein Problem eigentlich nicht möglich ist, und zwar wirklich unmöglich und nicht wie in "so schlecht kann Windows doch eigentlich gar nicht programmiert sein, aber irgendwie tritt das Problem trotzdem auf." Du schließt aus, dass der Fehler bei dir liegt: ok, bei der Bedienung von IExpress kann man ja auch nicht so viel falsch machen. Was allerdings ein Problem ist, ist deine Fehlerbeschreibung. Wie schon gesagt, das Problem sollte in dieser Form eigentlich nicht auftreten können; getestet habe ich das Ganze vor dem Schreiben meines ersten Kommentars auch. Also entweder machst du einen Fehler, oder deine Version von IExpress ist (trotz gleicher Versionsnummern) komplett anders. Statt also nur "Das Dateifenster enthält die 64bit exe einfach gar nicht erst????" zu schreiben, wäre eine genaue Beschreibung oder ein Screenshot vielleicht angebrachter.

    MfG James

    Edit: Eine Alternative (neben dem schon erwähnten selbst geschriebenen Installer) wäre zum Beispiel WinRAR (oder jedes andere Programm mit ähnlichen Features).

    AutoIt Version (Prod): 3.3.14.2

    AutoIt Version (Beta): 3.3.9.5

    ausgewählte Skripte: Chatbot, komplexe Zahlen (UDF)

    2 Mal editiert, zuletzt von James (1. September 2013 um 12:19)

  • Hi,

    Zitat

    es ist ein Versuch, da das Prog auf euinem 64bit System anscheinend immer wieder abstürzte. Oder habe ich da irgendwelche Häckchen falsch gesetzt, so dass es nur für 32bit compiled wird?
    dlls binde ich gar nicht mit ein.

    solange du keine externen 64-Bit-dll´s einbindest oder esoterische UDF´s verwendest, kannst du JEDES Script in X86 kompilieren, es läuft dann auch auf einem 64-Bit-System!
    Was mich eher stört, ist

    Zitat

    es ist ein Versuch, da das Prog auf euinem 64bit System anscheinend immer wieder abstürzte.

    Was soll DAS denn?
    Wenn dein Script nicht richtig funktioniert, und du meinst diesen "Schrott" damit kompensieren zu können, dass du es für X64 kompilierst, solltest du dir ( oder hier ) komplett andere Fragen stellen als zum Thema " Iexpress"!

    Zitat

    Oder habe ich da irgendwelche Häckchen falsch gesetzt, so dass es nur für 32bit compiled wird?

    Woher sollen wir das denn wissen?
    Wie schon von James gesagt, Screenshots FTW!
    Und mit Hinweis auf die "Abstürze" erstmal das Script....

  • Hallo ihr beiden,

    vielen Dank für die Belehrungen
    .
    James: hast du es auch unter XP versucht?

    Für mich äußerst wichtig ist die Tatsache, dass x86 Progs auf x64 Systemen laufen sollten. Ich muß dann wohl wirklich von einem Fehler im "Schrott" ausgehen.
    Bei mir unter XP läuft das Prog einwandfrei und deshalb hatte ich eben diese obige Vermutung.
    Leider kann ich den Fehler auch nicht genauer eingrenzen, da der Anwender das Programm aufgrund der Abstürze von seinem Rechner löschte und ich kein jüngeres Betriebssystem habe.
    Das Prog ist übrigens viel zu groß zum Zeigen.
    Aber ich habe jetzt eine neue Vermutung. Vielleicht kann das Programm seine Ergebnisse oder seine ini-Dateien aufgrund von fehlenden Adminrechten o.ä. nicht speichern. Ich muß mal nachschauen, wie und ob ich diesen möglichrn Fehler beim Speichern abfange.
    Und ich werde die SUFU mal bemühen, um zu schauen, ob und wie man einem Prog die nötigen Rechte mitgeben kann.

    Also trotzdem Danke für euer Bemühen und wenn es mir möglich gewesen wäre, hätte ich natürlich den Fehler im Script genauer dokumentiert.

  • Hi,

    Zitat

    Bei mir unter XP läuft das Prog einwandfrei und deshalb hatte ich eben diese obige Vermutung.

    das macht einiges klarer^^

    Zitat

    Ich muß mal nachschauen, wie und ob ich diesen möglichrn Fehler beim Speichern abfange.

    Ich bevorzuge die "OnError"-Variante.
    Zunächst einmal wird festegelegt, dass ein Fehler in einem Programm niemals zum Absturz führen kann!
    Beispiel, s. hier, Schnuffels Links! Ich habe diese UDF einfach auf meine Bedürfnisse angepasst bzw. umgeschrieben.
    Dann gilt es herauszufinden, wo im Script der Fehler auftritt. Wenn man diesen Fehler bzw wenigstens den Ort des Fehlers in einer MsgBox (und in einer Error-Datei) ausgibt, dann kann der User wertvolle Informationen liefern!
    Im Prinzip ist das unglaublich einfach, man muss lediglich am Anfang sämtlicher relevanter Programmteile (bspw. Funktionen/Schleifen ) einen Klartext einfügen der die Position bzw ein Vorkommen des Fehlers dokumentiert:

    [autoit]

    func _blablub()
    $errormsg="Funktion _blablub"
    ...
    for $i=1 to ubound($array)-1
    $errormsg="Schleife Datenimport Fehler an Position $i=" &$i"
    ...

    [/autoit]

    Das schlimmste was passieren kann ist ein Absturz oder schlimmer noch ein kryptisches (AutoIt-)Fensterchen mit Inhalt "Error in line-1"

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (1. September 2013 um 15:20)

  • hast du es auch unter XP versucht?


    Nur unter Windows 7, für eine virtuelle Maschine habe ich momentan nicht genug Speicherplatz.

    Ich habe allerdings gerade mein altes Windows 2000 Laptop wieder vom Schrank geholt, und auch dort verhält es sich wie bereits vermutet.

    Die verwendete Dateiauswahl würde in AutoIt etwa so aussehen:

    [autoit]

    FileOpenDialog("Open", @UserProfileDir, "All Files (*.*)")

    [/autoit]


    Es ist nicht möglich, dass dort Dateien nicht angezeigt werden. Selbst bei einem anderen Filter würde sowas nur nach der Dateiendung entschieden werden, nicht nach 32 oder 64 Bit, da die Dateiauswahl den Inhalt der Dateien komplett ignoriert.

    AutoIt Version (Prod): 3.3.14.2

    AutoIt Version (Beta): 3.3.9.5

    ausgewählte Skripte: Chatbot, komplexe Zahlen (UDF)

    Einmal editiert, zuletzt von James (1. September 2013 um 15:20)

  • An einem anderen Rechner klappte es mit Iexpress. Als ich den Sreenschot vom Explorer gemacht hatte und den vom Iepress machen wollte, kam ich dahinter, warum:

    Ich hatte meine Backupplatte noch angeschlossen und hatte dummerweise auf diese die compilete x64-Datei gespeichert. Mein Add-Aufruf aus Iexpress ging aber immer an meinen Läppi und und da war die x64 datei nicht drauf, weil ich diese eben versehentlich auf der externen gespeichert hatte. Und neu Nachschauen mußte ich ja auch nicht, da ich immer noch das Dateifenster mit dem (falschen!) Pfad auf hatte...
    Erst beim Abziehen der FP um damit zu einem anderen Rechner zu gehen, wegen Screenshot und noch einmal ausprobieren, ging mir ein Licht auf..., bzw. ein Explorerfenster zu...
    Dickes Sorry von meiner Seite an euch.
    Richtigstellung: Es funktioniert genau wie James erklärt hat, auch unter XP. Ich werde halt alt ;( Was ein dämlicher Fehler!

    Andy: Vielen Dank für die Tipps. Hab ich mir gerade runtergeladen und werde ich wohl so umsetzen, besonders das mit OnError