Registry Classes shell ???

  • hallo @all
    folgendes Problem: ich will mp3-Dateien mit meinem Programm öffnen. Mit $CMDLINE[1] hat das super geklappt.
    Nur um eine Mp3-Datei zu öffnen, muss man halt rechtsklick, öffnen mit, haken setzen, usw...sehr umständlich und problematisch wenn ich es Freunden schicke.
    Nun hörte ich etwas von Registry Classes shell...?! ?( damit kann man diesen Weg einfach machen.
    kann mir bitte jemand ein Beispiel machen, wie ich diese Registry (mp3-Dateien mit meinem AudioPlayer.exe öffnen) schreibe?
    Danke im Voraus :P

    [autoit]


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

    [/autoit]
  • Beispiel:

    Spoiler anzeigen

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 244, 88, 358, 262)
    $Input1 = GUICtrlCreateInput("", 16, 8, 145, 21)
    $browse = GUICtrlCreateButton("Browse", 168, 8, 75, 25, 0)
    $play = GUICtrlCreateButton("Abspielen", 16, 40, 75, 25, 0)
    $regwrite = GUICtrlCreateButton("Registry", 96, 40, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    if IsArray($CmdLine) Then
    For $i = 1 To $CmdLine[0]
    If StringRight($CmdLine[$i], 4) = '.mp3' And FileExists($CmdLine[$i]) Then
    GUICtrlSetData($Input1, $CmdLine[$i])
    EndIf
    Next
    EndIf
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    case $play
    $sound = GUICtrlRead($Input1)
    SoundPlay($sound)
    case $browse
    $sound = FileOpenDialog("Sound wählen", @DesktopDir, "Mp3-Dateien(*.mp3)")
    GUICtrlSetData($Input1, $sound)
    case $regwrite
    ?????????????????????????????? ;=====Hier soll dann der Weg öffnen mit, standartprogramm auswählen, ... umgangen werden...
    EndSwitch
    WEnd


    hoff mal ihr versteht was ich meine :thumbup:

    [autoit]


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

    [/autoit]
  • danke funkey, aber die funcs klappen bei mir nicht...wie muss die function aussehen, wenn die zu registrierende Datei .mp3 und die Beschreibung..."RegTest" ist?
    vielleicht bin ich nur zu dumm die Parameter zu kapieren^^ :rolleyes:

    [autoit]


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

    [/autoit]
  • genau so hatt ichs...aber iwie funzt das nicht
    wenn ich eine mp3-datei öffne, geht der Windows-media-Player auf... ;(

    [autoit]


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

    [/autoit]
  • Tausch mal eine Zeile in der Funktion aus:

    Das
    [autoit]

    RegWrite("HKCR\" & $sTypeName & "\shell\open\command", "", "REG_SZ", $sAppName & " -cal %1")

    [/autoit]

    ersetzen durch

    das
    [autoit]

    RegWrite("HKCR\" & $sTypeName & "\shell\play\command", "", "REG_SZ", '"' & $sAppName & '" "' & '%1"')

    [/autoit]