Windows Context Menü

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von xX-Nick-Xx.

    Windows Context Menü

    Moin und ein Frohes neues Jahr,

    Ich habe mich etwas mit dem Context Manager von Windows befasst. Da ich mich mit REGEdit aber noch nicht so auskenne habe ich einige Fragen diesbezüglich.

    1. Ich habe es zwar geschafft einen Eintrag hinzuzufügen mit Icon, aber ich habe nichts rausgefunden wie ich dem Eintrag einer Extension zuweise. (z.B. .txt)
    2. Auch habe ich nicht rausgefunden wie ich dem Eintrag dann ein Programm zuweise und wie ich dem Programm sage was es damit dann machen soll.
    3. Außerdem würde ich das ganze gerne in eine Liste machen, wie bei 7-Zip (Siehe Bild 3.)

    Ich Bedanke mich schonmal im Voraus für eure Antworten/Hilfe.
    (Mfg Nick)

    Mein Versuch

    Pfad dazu



    Bild 3. (So hätte ich es gerne)

    ich würde nicht selbstherrlich in der Registry rumfuhrwerken.
    Mir gelingt meistens, im Datei-Explorer-Kontextmenü: "Öffnen mit..." die Datei mit dem Programm meiner Wahl zu öffnen.
    Nachdem das einmal getan ist, wird diese Anwendung zukünftig immer im "Öffnen mit..."-Kontextmenü dieser DateiEndung aufgeführt.

    Ist dann vlt. nicht ganz so, wie du's haben willst, aber dafür ist die Wahrscheinlichkeit sehr gering, dass dein Windows durch unqualifizierte Registry-Manipulationen beschädigt wird.
    Danke @Fakiz, ich habs nun hin bekommen.

    Quellcode

    1. Windows Registry Editor Version 5.00
    2. [HKEY_CLASSES_ROOT\*\shell\Test01]
    3. "MUIVerb"="TestButton"
    4. "SubCommands"="test"
    5. "icon"="explorer.exe"
    6. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\test]
    7. @="test"
    8. "icon"="notepad.exe"
    9. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\test\command]
    10. @="C:\Users\user\Desktop\Nick\OFSync\Mappe\Test\Test\bin\Debug\Test.exe" [color=#008000]//Funktioniert nicht per .reg-Datei, ihm ist wohl der Pfad zu lang?![/color]




    Also Manuell hab ich es nun hinbekommen das Dateien per Button aufgerufen werden.
    nur leider bei der Eintragung via VB klappt es nicht so richtig.

    Entweder bekomm ich (Zugriff verweigert) wenn ich ohne Admin Starte, oder das in den Schlüssel nichts eingetragen werden kann.
    (Oder es passiert einfach garnix)


    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim regKeyPath As String = "*\shell\test"
    3. Dim regKey As RegistryKey = Registry.ClassesRoot.OpenSubKey(regKeyPath)
    4. If regKey Is Nothing Then
    5. ' Schlüssel nicht vorhanden -> erstellen
    6. regKey = Registry.ClassesRoot.CreateSubKey(regKeyPath)
    7. End If
    8. regKey.SetValue("MUIVerb", "Test")
    9. regKey.SetValue("SubCommands", "test")
    10. End Sub


    wüsste hier jemand etwas rat?
    ich bin jetzt leider nicht sonderlich vertraut mit der Registry.

    Danke im voraus.

    Ich glaube nicht das du ohne Administratorrechte neue RegistryKeys anlegen kannst. Du könntest beim Start deiner Anwendung gleich Administratorrechte einfordern oder vor Ausführung der Prozedur prüfen ob Adminrechte vorliegen und falls nicht den Benutzer auffordern die Anwendung als Administrator zu starten.