"Fileinstall" kann mir das einer erklären^^

  • Folgendes:

    [autoit]

    $b = True
    If $b = True Then FileInstall("D:\Dokumente und Einstellungen\Danny\Desktop\cost.au3","C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\cost.au3")

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

    $c = True
    If $c = True Then FileInstall("D:\Dokumente und Einstellungen\Danny\Desktop\cost.au3","D:\Dokumente und Einstellungen\All Users\Startmenü\Programme\cost.au3")

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

    If FileExists("C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\cost.au3") Then
    MsgBox(4096, "File", "Exists")
    Else
    MsgBox(6,"Prblem","Not Found")
    EndIf
    If FileExists("D:\Dokumente und Einstellungen\All Users\Startmenü\Programme\cost.au3") Then
    MsgBox(4096, "File", "Exists")
    Else
    MsgBox(6,"Prblem","Not Found")
    EndIf

    [/autoit]

    Die File auf D:\ existiert komischerweise, die andere aber nicht???? :huh:

    Gruß

    3 Mal editiert, zuletzt von Dönn3y (19. März 2008 um 19:59)

  • Hi Dönn3y,

    überprüfe doch mal, ob die angegebenen Ordner exitieren. Ein Problem von "Fileinstall", es kann keine Ordner erstellen (siehe Beispiel). ;)

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

    GUICreate("Beispiel", 300, 200)
    GUICtrlCreateLabel("Das ist ein Beispiel, das zeigt wie man Dateien mit einbindet.", 10, 10)
    ;FileInstall("C:\test\alarm.wav", "C:\tteesstt\alarm.wav")

    SoundSetWaveVolume(50);(100)
    SoundPlay("Sounds\Error.wav", 1) ; Datei die abgespielt werden soll

    GUISetState(@SW_SHOW)

    [/autoit]


    Schönes WE und weiterhin
    viel Erfolg !

  • Hi,

    gehe ich recht in der Annahme das du das nur mit der NICHT kompelierten Datei getestet hast?
    Zu Deiner Frage, mit dem FileInstall nimmst Du eine Datei in das Skript mit auf (es wird eingepackt), wenn du das Skript kompelieren lässt, wird also in deinem Fall die coust.au3 aus dem Verzeichnis D:\Dokumente und Einstellungen\Danny\Desktop in das Skirpt eingepackt. Wenn nun einer die kompelierte EXE Datei ausführt, wird zu beginn die Datei wieder entpackt und zwar an den Ort der als zweiter Parameter angegeben wird (bei dir C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\cost.au3)

    Mal ein Beispiel, ich habe eine INI Datei mit Einstellungen für mein Skript, die INI (ich nenne sie mal meine.ini) liegt in meinem Skript-Verzeichnis, wenn ich mein Skript weiter geben möchte, habe ich keine Ahnung wo der andere User das Skript ausführen wird. Also ich habe bei mir zum Entwickeln folgenden aufbau:
    c:\autoit\meinskript.au3 <= Das ist das Skript was ich entwickle
    c:\autoit\meine.ini <= Das ist meine INI Datei mit Einstellungen

    In mein Skript baue ich folgendes ein:
    Fileinstall("c:\autoit\meine.ini",@ScriptDir & "\meine.ini")

    So nun noch schnell kompelieren und ich habe eine schöne EXE Datei, die ich meinen Bekannten schicke. Der heißt Rudi Rüssel und packt die Datei in den Ordner:
    D:\Skripte\DummesDing\cost.exe

    Wenn er nun die Datei startet wird im Verzeichnis D:\Skripte\DummesDing die von mir in meinem Skript mit eingebundene ini Datei auftauchen und er kann gleich mit meinem Skript arbeiten.

    So glaube das müsste so reichen :D

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • ja die ordner existieren, aber der soll doch einfach nur die datei in den ordner speichern. und auf D:\ existiert der ordner ja auch? :S

    im prinzip ist es also das gleiche

  • hmm, ok. gut erklärt. danke, aber

    wie mach ich das eig wenn das script auf rudi rüssels pc gleich starten soll wenn er seinen pc startet?

    blubbstar hat mir letztes mal geschrieben, dass das script in den autostart ordner muss. wie stell ich das dann an?

    gruß

  • ja aber wenn ich das mache so wie mcpoldy es sagt, liegt ja meine datei dann in dem ordner, in dem rudi rüssel es abgespeichert hat, und nicht im autostart ordner...

  • ja wieder^^

    Edit: das was mir spider da gemacht hat funktioniert. aber sobald ich mein script kompiliere, macht er das irgendwie nicht mehr...

    • Offizieller Beitrag

    Hallo

    Besser so, falls es doch mal als au3 sein sollte:

    [autoit]

    Func _RunOnStartUp($sName = @ScriptName)
    If @Compiled Then
    RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", $sName, "REG_SZ", @ScriptFullPath)
    Else
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run",$sName,"REG_SZ",'cmd /k "'&@ScriptFullPath&'"')
    EndIf
    EndFunc ;==>_RunOnStartUp

    [/autoit]

    Mfg Spider