SQLite connection wenn Autoit nicht installiert ist

  • Hello,
    ich habe hier ein einfaches sqlite-script

    Auf einem System wo Autoit installiert/ Compiliert wurde
    _SQLite_LibVersion=3.7.2

    Wenn aber Autoit auf dem Client nicht installiert wurde und nur die Compilierte Exe ausgeführt wird erhalte ich
    _SQLite_LibVersion=0

    Wie kann ich das beheben?
    Ich habe bereits versucht die #include <SQLite.au3> und #include <SQLite.dll.au3> beim compilieren zu includen, ohne erfolg.
    Ich würde das gern beim Login scripts in der domain nutzen, wenn autoit aber nicht auf jeden cleint installieren.

    Vielen Dank!
    Basti

    Einmal editiert, zuletzt von basti19855 (5. Dezember 2013 um 16:26)

  • Also scheinbar werden laut compile log beide dateien includiert:

    Code
    +>14:34:35 Aut2exe.exe ended.rc:0
    >14:34:35 Performing the Program Resource Update steps:
    ...>Updating Program Version information.
    ...>Setting Program ExecutionLevel Manifest information to asInvoker
    ...>Updating Program Manifest information.
    ...>Adding 2 file(s).
    +>14:34:35 Program Resource updating finished successfully.rc:0

    EDIT:
    Also ich baue das ganze als x86 damit es auf XP und auf Win7 (64bit) läuft.
    Jetzt hab ich allerdings mitbekommen, das es unter XP (x86) läuft, also ein Ergebnis zurückgibt und bei Win7 (64bit) 0 zurückliefert.

    Was für mich irgendwie nicht zu erklären ist.

    EDIT2:
    Selbst als 64-bit EXE geht es nicht unter Win7 64-bit.

    2 Mal editiert, zuletzt von basti19855 (5. Dezember 2013 um 15:31)

  • dann hast du nen fehler gemacht beim includen der sqlite3 dll au3


    Wie soll man dabei einen Fehler machen? Das Problem wird mit fehlenden Administrator Rechten bzw. der Benutzerkontensteuerung unter Windows 7 zusammenhängen, denn die sqlite.au3 versucht die dll, welche binär in der sqlite.dll.au3 vorliegt ins Systemdir zu extrahieren, sofern keine neuere SQLite Version dort oder andernorts vorgefunden wird:

    [autoit]

    If $fUseInline Then
    $sDll_Filename = @SystemDir & "" & $sDll_Filename

    [/autoit]

    Ein #Requireadmin würde vermutlich ausreichen. Da es aber vielleicht nicht immer praktikabel ist Adminrechte anzufordern ist es ohnehin die sauberere Lösung die DLL im Scriptverzeichnis mitzuliefern. Fileinstall könnte hierbei behilflich sein, wenn man die DLL nicht separat mitliefern will.