dateiendung und Standardprogramm herausfinden

  • Hallo zusammen,

    wie kann ich denn in autoit herausfinden, welches standardprogramm für eine dateiendung zugewiesen wurde?

    so dass ich einen pfad zu dieser programm-exe auslesen kann, wie z.b. bei pdf der acrobat reader.

    geht das ??


    gruß anno

  • ich habe im forum mal was gefunden

    link

    hier wird eine endung in der registry registriert. ich kenne mich mit er reg jetzt nicht so aus, aber ich kann auch diesen anfang HKCR nicht finden.

    • Offizieller Beitrag

    HKCR ist die Abkürzung für HKEY_CLASSES_ROOT.

  • ich habe in den schlüsseln bisher immer nur die exe dateinamen gefunden, aber kein ganzer pfad der datei.

    wie komme ich denn auf den ganzen pfad?

  • Wenn da kein Pfad drinsteht, ist der Pfad in der Path-Variable vorhanden.
    Also am besten in @WinDir und in @windir & "\system32" gucken...
    Anzeigen lässt du die Path-systemvariable, also alle Ordner, wo das Programm stecken könnte über

    [autoit]

    Run(@ComSpec & "/c path & pause")

    [/autoit]

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • wenn ich z.b mal winrar nehme, dann findet sich das programm ja unter:

    c:\programme\winrar\winrar.exe

    in der reg steht da aber in HKEY_CLASSES_ROOT\.rar nur ein oder 2 werte.


    der eine ist (Standard) | REG_SZ | WinRar
    und der andere ZAMailSafeext | REG_SZ | zma

    also irgendwie braucht man da doch sicherlich noch was anderes als nur diese registryeinträge.

  • Ja, du hast Recht.
    Bei einigen Programmen, wie Beispielsweise WinRar, bedeutet WinRAR nicht das Programm, sondern den Dateityp.
    D.h.: HKCR\WinRAR
    Dort gibt es einen Unterschlüssel shell\open, dessen Standartwert schließlich den vollen Pfad plus Parameterplatz (%1) angibt.

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Hallo, ich muss wegen diesen Schlüsseln nochmal nachfragen.

    und zwar habe ich da denke ich einen ganz guten kandidaten gefunden.

    ich möchte z.b. ein jpeg file öffnen. da ist bei mir der standardviewver unter windows xp aktiv.

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

    MsgBox(1, "schlüssel", RegRead("HKCR\jpegfile\shell\open\command", "REG_SZ"))

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

    will ich nun diesen Schlüssel auslesen bekomme allerdings nut einen leeren string zurück bzw. in der msgbox wird nichts angezeigt.

    Wie kann ich aber nun den Wert, den ich in der registry gesehen habe nun mit dem z.b. shellexecute oder runwait usw... öffnen.

    Wert aus der Registry:

    Code
    rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen %1

    bei vista hätte ich folgendes:

    Code
     %SystemRoot%\System32\rundll32.exe "%ProgramFiles%\Windows Photo Gallery\PhotoViewer.dll", ImageView_Fullscreen %1