Pfad einer angeklickten Datei ermitteln

  • Hallo.

    Ich habe ein Problem. Ich wollte ein Programm machen, mit dem man verschiedene Daten eingeben kann und diese als datei speichern kann. (diese sollte eine neue sein; *.tda). Das hab ich geschafft. Aber jetzt will ich, dass sich durch anklicken dieser *.tda Datei mein Programm öffnet und alle Informationen der Datei in die entsprecheden Felder eingegeben werden. Das Auslesen und einfügen bekommt ich hin, mein Problem liegt im Finden des Pfades meiner *.tda Datei...
    Gibt es einen Weg diesen Pfad zu ermitteln?

    Bsp. so ähnlich wie bei Microsoft-Word.
    Man öffnet ein Word-Dokument. Microsoft-Word geht auf und der Text ist schon eingegeben.
    :rolleyes: Sorry fürs komplizierte Erklären aber anders hab ichs nich hinbekommen:rolleyes:

    [autoit]


    While $Life = True
    $nMSG = BrainGetMsg()
    Switch $nMSG
    Case $Idea
    _Convert_Idea2Code()
    EndSwitch
    WEnd

    [/autoit]
  • Ich glaube das ist höchstens möglich, wenn dein Programm die ganze Zeit im Hintergrund läuft und nur darauf artet, dass die besagte Datei angeklickt wird.
    Das Programm durch einen Klick auf die Datei zu starten halte ich für schwierig (unmöglich), es sei denn, du wähltst als Standard Programm für .tda Datein dein Skript aus, dass könnte vielleicht gehen.
    Rechtsklick-öffnen mit-Programm auswählen-Durchsuchen...-deine .exe
    Ich glaube das geht.

  • Es sagt doch das er es hinbekommt, dass das Programm gestartet wird, aber nicht das er erfährt welche Datei geöffnet wurde!
    Das erfährst du über

    Spoiler anzeigen
    [autoit]

    $CMDLine[0]

    [/autoit]


    Naja, damit erfährst du eig, mit wie vielen Parametern das Programma aufgerufen wird, um die Parameter zu erhalten musst du die 0 durch 1 oder Großer ersätzen

    EDIT:
    Hier auszug aus der Hilfe:

    Spoiler anzeigen

    $CmdLine[0] ist die Anzahl der Parameter
    $CmdLine[1] ist Parameter 1 (nach dem Skriptnamen)
    $CmdLine[2] ist Parameter 2 etc.

    mfg. Jam00

  • @FojhtirfX

    Das bekomm ich sa hin dass beim öffnen der .tda dateien mein programm geöffnet wird, aber ich will ja dass die informationen, die in der datei enthalten sind sofort ins programm eingelesen werden. Dazu brauche ich den pfad meiner datei ... und den bekomm ich nicht raus. ;( ;( ;(
    Jam00
    http://www.autoit.de/dokumentation_…g_variables.htm
    Könntest du mir das mit dem $CMDLine etwas genauer erklären? das versteh ich nicht so ganz...
    http://www.autoit.de/dokumentation_…g_variables.htm

    http://www.autoit.de/dokumentation_…g_variables.htm
    ok ich versuchs mal...dein Edit kam während ich mein post schrieb^^

    [autoit]


    While $Life = True
    $nMSG = BrainGetMsg()
    Switch $nMSG
    Case $Idea
    _Convert_Idea2Code()
    EndSwitch
    WEnd

    [/autoit]
  • @ GE IXI TIM
    Wie wäre es, wenn Du das Script mal postest, denn dann kann man auch sagen wie Du den Pfad heraus bekommst. ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Das ist für das eintragen der Informationen in meine Datei.
    aber $path soll der pfad der .tda datei sein, wenn ich diese öffne.
    aber wie soll ich den bekommen, wenn ich diese öffne ;( ;( ;( ich hoff es geht so wie bei Microsoft-Word^^

    Spoiler anzeigen

    $z1 = FileReadLine($path, 2)
    $z2 = FileReadLine($path, 4)
    $z3 = FileReadLine($path, 6)
    $z4 = FileReadLine($path, 8)
    $z5 = FileReadLine($path, 10)
    $z6 = FileReadLine($path, 12)
    $z7 = FileReadLine($path, 14)
    $z8 = FileReadLine($path, 16)

    GUICtrlSetData($data, $z1)
    GUICtrlSetData($name, $z2)
    GUICtrlSetData($buyprice, $z5)
    GUICtrlSetData($buydata, $z3)
    GUICtrlSetData($selldata, $z4)
    GUICtrlSetData($sellprice, $z6)
    GUICtrlSetData($porto, $z7)
    GUICtrlSetData($gewinn, $z8

    [autoit]


    While $Life = True
    $nMSG = BrainGetMsg()
    Switch $nMSG
    Case $Idea
    _Convert_Idea2Code()
    EndSwitch
    WEnd

    [/autoit]
  • Hier ein Beispiel:

    1.au3 Musst du Kompieler!

    MsgBox (64,"Parameter","Ich wurde mit dem Parameter " & $CMDLine[1] & " gestartet")

    Das Script muss im gleichen Ordner wie die 1.exe sein
    [autoit]

    Run (@ScriptDir & "\1.exe /" & InputBox ("Parameter","Gib den Parameter an"))

    [/autoit]

    mfg. Jam00

  • Und was soll ich mit dieser Datei anfangen?
    Die hat doch garnichts mit meinem Prob zu tun...
    ;(

    [autoit]


    While $Life = True
    $nMSG = BrainGetMsg()
    Switch $nMSG
    Case $Idea
    _Convert_Idea2Code()
    EndSwitch
    WEnd

    [/autoit]
  • Als erstes empfehle ich die Funktion alle zu setzen. Du rufst nämlich Funktionen auf, die noch gar nicht bestehen. So kann man das Script schon mal nicht testen um dann wiederum das o. g. Problem anzugehen.

    Den Fehler schiebe ich mal in die Schublade: "Jede/r fängt mal klein an". Ich u. a. ganz klein, mit damals gar keine Ahnung außer Batching. Also nicht persönlich nehmen, sondern als guten Tip / Rat.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr