| |
| In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.
Hinweis: Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden! | Fragen zu Tipps & Tricks und Workshops im vb@rchivTipp 1885: Eintrag ins Kontextmenü des Windows Explorers (.NET) | | | Autor: EckiHage | Tipp anzeigenDatum: 26.08.09 15:18 |
| Liebes Forum,
bei Nutzung des beschriebenen Codes bekomme ich folgende Fehlermeldung:
Der Zugriff auf den Registrierungsschlüssel "HKEY_CLASSES_ROOT\Folder\Shell\DatumVoranstellen" wurde verweigert.
Der Fehler wird bei dieser Zeile ausgelöst:
Dim Entrykey As RegistryKey = Shellkey.CreateSubKey(text)
Ich benutze als Betriebssystem Vista.
Vielen Dank in Voraus!
EckiHage | |
Re: Eintrag ins Kontextmenü des Windows Explorers (.NET) | | | Autor: SenZe | Datum: 26.10.10 14:53 |
| Hallo, ich habe eine andere Frage zu diesem Tip:
Unter W7 (habe 64bit) scheint es mit diesem Tip nicht mehr möglich zu sein, einen eigenen Befehl im Kontextmenü zu hinterlegen. Die im Tip durchgeführten Registry-Eintragungen ändern nichts. Kann das jemand bestätigen? Und noch wichtiger, weiß jemand abhilfe? Gern auch von hand und nicht per Source...
Danke schonmal!
LG,Robert | |
Re: Eintrag ins Kontextmenü des Windows Explorers (.NET) | | | Autor: SenZe | Datum: 26.10.10 16:20 |
| Danke für die Antwort, habe das Problem jedoch jetzt schon mit "Senden an" umgangen.
LG,Robert | |
Re: Eintrag ins Kontextmenü des Windows Explorers (.NET) | | | Autor: MarKra | Datum: 22.10.14 15:22 |
| Hallo zusammen,
ich habe dieses Beispiel übernommen und es klappt super, bis auf eine Kleinigkeit. Ich habe ganz neu mit Visual Basic (Studio 2013) angefangen und jetzt trotz langer Suche im Internet keine Hilfe gefunden. Ich arbeite unter Win7 64.
Wenn ich mein Programm über das Windows-Kontextmenü aufrufe, möchte ich den Pfad (oder den Namen) des Objektes in dem Programm verwerten, dass ich über das Kontextmenü aufrufe. (Konkret soll ein Unterordner in dem Ordner erstell werden, auf dem das Kontextmenü aufgerufen wird.)
Dazu soll ja "%1" dienen, das wird bei mir jedoch ganz normal als String ausgegeben (mit %1) und nicht von Windows ersetzt.
Kann mir jemand in einem kurzen Beispiel zeigen, wie ich meiner Sub Main() diesen String als Parameter (oder wie auch immer es geht) übergeben kann?
Dafür wäre ich sehr dankbar.
Ich habe auch noch nicht verstanden, wie ich der Main generell einen Parameter übergeben kann.
Sobald ich der Main etwas übergebe, wird erst "Optional" gefordert und im nächsten Schritt "die Signatur der Main" nicht mehr erkannt.
Mit freundlichen Grüßen
Markus
| |
Re: Eintrag ins Kontextmenü des Windows Explorers (.NET) | | | Autor: MarKra | Datum: 23.10.14 09:15 |
| Hallo Manfred X,
danke für die Antwort.
Wenn ich das richtig verstanden habe, kann die Main nur eine Funktion als Parameter enthalten, bzw. die Parameter werden als Funktion abgefragt. So stellt es sich zumindest in diesem Beispiel dar:
http://msdn.microsoft.com/de-de/library/ms235406.aspx
mit: Sub Main(ByVal cmdArgs() As String)
Wenn ich mir nun alle cmdArgs() in einer MsgBox ausgeben lassen will und das Programm über mein Windows-Kontextmenü starte, bekomme ich gar nichts. Damit löst sich also leider nicht mein erstes Problem.
Leider kann ich das selbst so schlecht testen, da ich nicht im Debug-Modus arbeiten kann, wenn ich das Programm über das Windows-Kontextmenü starte.
Mit freundlichen Grüßen
Markus
Beitrag wurde zuletzt am 23.10.14 um 09:16:50 editiert. | |
Re: Eintrag ins Kontextmenü des Windows Explorers (.NET) | | | Autor: MarKra | Datum: 23.10.14 09:20 |
| [Bitte löschen]
Beitrag wurde zuletzt am 23.10.14 um 09:22:02 editiert. | |
Re: Eintrag ins Kontextmenü des Windows Explorers (.NET) | | | Autor: Manfred X | Datum: 23.10.14 10:34 |
| Probier mal dieses Modul ...
Module modCommandLine
Public Sub Main(cmdargs() As String)
If cmdargs Is Nothing OrElse cmdargs.Length = 0 Then
MsgBox("Keine Parameter gegeben")
Exit Sub
End If
Dim stb As New System.Text.StringBuilder
For i As Integer = 0 To cmdargs.Length - 1
stb.Append(cmdargs(i) & " ")
Next i
MsgBox("Parameter: " & stb.ToString)
End Sub
End Module | |
Re: Eintrag ins Kontextmenü des Windows Explorers (.NET) | | | Autor: MarKra | Datum: 23.10.14 10:44 |
| Hallo Manfred X,
das hat geholfen, danke.
Jetzt weiß ich zumindest, dass durch das Windows-Kontextmenü kein Parameter an die aufgerufene Datei übergeben wird. Ich hab es mir wohl zu einfach vorgestellt, als ich hoffte, ich würde irgendwie ein handle oder etwas Ähnliches bekommen.
Dann muss ich jetzt weiter mit %1 experimentieren, das soll ja von Windows durch den Pfad ersetzt werden.
Viele Grüße
Markus | |
Re: Eintrag ins Kontextmenü des Windows Explorers (.NET) | | | Autor: MarKra | Datum: 23.10.14 13:40 |
| Hallo nochmal,
das Problem ist jetzt gelöst. In dem Regestry-Eintrag stand Aufgrund einer Schlamperei von mir nicht wie erforderlich das %1 hinter dem Pfad des Programmes.
Zusammen mit dem %1 am Pfad steht in deiner Variable stb.ToString der Pfad und der Name des angeklickten Ordners.
Mit:
Dim strDatei As String = New DirectoryInfo(stb.ToString).Name
komme ich dann an den Ordnernamen.
Danke nochmals.
Viele Grüße
Markus | |
| Sie sind nicht angemeldet! Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|