Starten Sie cmd.exe über das Kontextmenü minimiert / versteckt

1

Ich habe eine Verknüpfung zum Kontextmenü erstellt, indem ich mit diesem RE_SZ-Schlüssel einen neuen Registrierungseintrag hinzufügte: cmd.exe start / min / c echo% 1 | clip

Dadurch kann ich den Pfad der rechts geklickten Datei kopieren.

ABER: Ein Cmd-Fenster wird immer für kurze Zeit geöffnet.

Wie kann ich dieses Cmd-Fenster ausblenden?

Janik H
quelle
Könnte für Sie geeignet sein: Halten Sie die Taste gedrückt Shift Wenn Sie mit der rechten Maustaste auf die Datei / den Ordner klicken (oder sogar auswählen), und wählen Sie Copy As Path.
JosefZ
Vielen Dank für Ihre Antwort, aber die Verknüpfung sollte ein spezielles Programm zum Senden an (kodi) anzeigen. Mit dem Standardmenü "Pfad kopieren" funktioniert es nicht. Kennen Sie den Registrykey, in dem das Kontextmenü "Als Pfad kopieren" gespeichert ist? Das wäre interessant, wie das funktioniert.
Janik H

Antworten:

3

Verstecke das cmd Fenster mit ShellExecute-Methode . Nächste Registrierungseinstellung funktioniert für eine einzelne Datei:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\MyCopyAsPath]

[HKEY_CLASSES_ROOT\*\shell\MyCopyAsPath\command]
@="wscript D:\\VB_scripts\\SU\\1007076.vbs \"%1\""

woher D:\VB_scripts\SU\1007076.vbs liest sich wie folgt:

option explicit
On Error GoTo 0

If WScript.Arguments.Count = 1 Then
  Dim objShell
  Set objShell = CreateObject("shell.application")
  objShell.ShellExecute "cmd.exe" _
    , "/C echo(" & WScript.Arguments(0) & "|clip", "", "open", 0
  Set objShell = nothing
Else
  MsgBox "wrong numer of parameters"
End If
Wscript.Quit

Das obige Skript gibt den vollständigen Pfad einer einzelnen Datei zurück (oder Ziel einer Dateiverknüpfung) und fügt hinzu CRLF (Wagenrücklauf und Zeilenvorschub). Sie könnten das weglassen CRLF mit set /P Trick wie folgt:

  objShell.ShellExecute "cmd.exe" _
    , "/C <NUL set /P =""" & WScript.Arguments(0) & """|clip", "", "open", 0

Nächste Verbesserung, um den Pfad in einem Paar zu umgeben " Anführungszeichen:

  objShell.ShellExecute "cmd.exe" _
    , "/C <NUL set /P =""""" & WScript.Arguments(0) & """""|clip", "", "open", 0

Zu Ihrer Information, hier ist der Registrierungsschlüssel, der die gespeichert hat Copy as Path Kontextmenü:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\CopyAsPathMenu]
"ProgrammaticAccessOnly"="Apartment"

[HKEY_CLASSES_ROOT\*\shell\CopyAsPathMenu\DropTarget]
"CLSID"="{f3d06e7c-1e45-4a26-847e-f9fcdee59be0}"
JosefZ
quelle
Vielen Dank dafür! Ich muss zwar eine Datei erstellen (VBScript) aber es funktioniert wirklich! Großartig! Und auch eine nette Erklärung! :)
Janik H