dateien öffnen

  • Hallo,

    ich möchte gerne die datei xyz.tur mit dem program a.exe in dem Verzeichniss $dir öffnen. Wenn man auf die Datei xyz nen doppelklickt macht, wird das auch mit dem Program a.exe geöffnet.

    Ich habe schon die suche benutzt und auch folgendes Gefunden :

    run ( ' ' & $Dir & ' "xyz.tur"' )

    nur leider geht das nícht. ich habe es auch schon mit dem Direkten Pfad versucht, leider auch ohne erfolg: run ( 'C:\Programme\abc\a.exe "xyz.tur"' )

    Das ist wahrscheinlich ne Anfängerfrage, aber ich bin erst wieder neu mit autoit angefangen, die INI befehle und filedir abfragenfenster hab ich noch hinbekommen, nur das simple öffnen nicht^^

    Ich hoffe ihr könnt mir helfen


    MfG

    filewalker

  • Schau dir mal

    [autoit]

    ShellExecute ( "filename" [, "parameters" [, "workingdir" [, "verb" [, showflag]]]] )

    [/autoit]

    an.
    Mit ShellExecute wird eine Datei gleich so geöffnet wie es in Windows hinterlegt ist (wie normaler DoppelKlick eigentlich)
    Gruß Stormy

  • ok. klasee für die schnelle antwort. funktioniert super. Hab aber noch eine Frage: Auf den Rechner, auf denen das ausgeführt wird, ist das leider nicht so, dass das passende Prog beim Doppelklcik ausgeführt wird. Da ich ja das Verzeichniss des Progs kenne, kann ich das da iwie mit reinbringen?

  • probiers mal so (ist noch ungetestet):

    Spoiler anzeigen
    [autoit]

    $Endung = "" ;ohne Punkt also .jpg --> jpg
    $ProgPath = ""

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

    $keyname= "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\."&$Endung
    $value = $Endung&"_auto_file"
    $valuename = ""
    $type = "REG_SZ"

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

    $keyname2 = "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\"&$value&"\shell\open\command"
    $value2 = $ProgPath
    $type2 = "REG_EXPAND_SZ"

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

    RegWrite($keyname,$valuename,$type,$value)
    RegWrite($keyname2,$valuename,$type2,$value2)

    [/autoit]

    Gruß Stormy

  • Bevor Du die Registry anderer Leute hackst, probiere es doch einmal so:

    [autoit]

    $file = @MyDocumentsDir & '\xyz.tur'
    Run($Dir & '\a.exe "' & $file & '"')

    [/autoit]

    Wenn dein Script nur einmalig oder selten auf fremden Rechnern läuft, dann ist es nicht ratsam in die Registry zu schreiben.


    Gruß
    Greenhorn


  • Ersteinmal ein großes Dankeschön an alle, die sich mit meinen problem beschäftigt haben.

    Leider wird bei der letzten, aufgezählten Möglichkeit nur das Programm geöffnet, nicht aber das xyz.tur Dokument. Das mit der Registry geht leider nicht, da ich nur eingeschränkte Rechte auf den anderen Rechner besitze und somit keine Schreibrechte für die Registry; sonst wäre dies auch eine alternative, die durchaus in frage käme, da nach jedem Neustart des Rechners alle änderungen an Registry, Software und Dateien wieder rückgänig gemacht werden. Sonst könnte ich ja mein Prog a.exe als Standartprogrammm eintragen.

  • Nein. Entschuldigung, das ich mich so unklar ausgedrückt habe. Ich mache das ganze mal konkreter:

    Ich habe ein programm zur CNC/CAD Verarbeitung. Um diese Programmmm zu starten,muss ichhalt a.exe (das a ist jetzt frei erfunden) öffnen. Jetzt habe ich aber schon ein CNC/CAD objekt erstellt und dieses in der Datei xyz.tur gespeichert. diese weill ich öffnen und anschließen über den play Knopf ausführen. Ich könnte auch über die datei öffnen funktion die datei öffnen. Nur dazu bracuh man so viele ControlKlicks und so, deswegen suche ich ja nach einer möglichkeit das script so zu starten.

    Einmal editiert, zuletzt von filewalker (3. Juni 2008 um 20:09)

  • Hast Du das Programm bei dir installiert ?
    Falls ja, dann sieh doch mal in der Registry nach mit welchem Befehl der Doppelklick auf eine *.tur geöffnet wird ...

    HKEY_CLASSES_ROOT\.tur

    Dort findest Du einen Eintrag (Perceived Type) was für eine Dateityp es ist, z.B. CAD File oder so etwas.
    Dann suchst Du nach

    HKEY_CLASSES_ROOT\CAD File\shell\open

    und solltest dann den Befehl zum öffnen einer *.tur Datei finden. ;)


    Gruß


  • Der Dateityp (cassyturfile) ist ähnlich dem Namen des Programmes (CassyCad). unter HKEY_CLASSES_ROOT\cassyturfile\shell\open gibt es nur einen Schlüssel mit leerem Wert. In HKEY_CLASSES_ROOT\cassyturfile\shell\open\command gibt es jedoch einen schlüssel: Typ:REG_SZ ;Wert:der Pfad zum Programm also z.b. C:/a/b/a.exe. Dann gibt es noch in HKEY_CLASSES_ROOT\cassyturfile\shell\open\DDEExec einen Schlüssel: Ryp: REG_SZ ;Wert:[open(%1,%2)].

    Was nützen mir jetzt diese infos?


    Gruß

    filewalker

    Edit: CassyCad kann ja noch andere Dateitypen öffnen, vllt hilft es ja zu wissen, das alle die gleichen schlüssel enthalten.

    2 Mal editiert, zuletzt von filewalker (3. Juni 2008 um 20:55)

  • In HKEY_CLASSES_ROOT\cassyturfile\shell\open\command gibt es jedoch einen schlüssel:
    Typ:REG_SZ ;Wert:der Pfad zum Programm also z.b. C:/a/b/a.exe.
    Dann gibt es noch in HKEY_CLASSES_ROOT\cassyturfile\shell\open\DDEExec einen Schlüssel: Ryp: REG_SZ ;Wert:[open(%1,%2)].

    Was nützen mir jetzt diese infos?

    Die '%1,%2' sind Platzhalter.
    Eigentlich sollte unter "HKEY_CLASSES_ROOT\cassyturfile\shell\open\command" so etwas wie
    "C:/a/b/a.exe" "%1"
    stehen, wobei die %1 deine *.tur representieren würde.

    Sieh dir mal den Schlüssel HKEY_CLASSES_ROOT\AutoIt3Script\Shell\Open\Command an.

    Dort findest Du den Eintrag "C:\Programme\AutoIt3\SciTE\SciTE.exe" "%1"
    Würde bedeuten mit

    [autoit]

    Run(@ProgramFilesDir & '\AutoIt3\SciTE "' & @MyDocumentsDir & '\Script.au3"')

    [/autoit]


    öffnest Du per Run die Script.au3 ...


    Gruß


  • danke für deine Hilfe, aber da steht leider nicht hinter; nur der programmpfard.