contextmenuを使用してcmd.exeを最小化/非表示にします


1

このRE_SZキーを使用して新しいレジストリエントリを追加して、コンテキストメニューへのショートカットを作成しました。cmd.exestart / min / c echo%1 | clip

これにより、右クリックしたファイルのパスをコピーできます。

しかし、それは常に短い間cmdウィンドウを開きます。

このcmdウィンドウを非表示にするにはどうすればよいですか?


あなたに適しているかもしれません:Shiftファイル/フォルダを右クリック(または選択)しながらキーを押し、そしてを選択しますCopy As Path
JosefZ

ご返信いただきありがとうございますが、ショートカットには(kodi)に送信する特別なプログラムが表示され、標準の[コピーパス]メニューでは機能しません。[パスとしてコピー]コンテキストメニューを保存したRegistrykeyを知っていますか?これは興味深いことです。
ジャニックH

回答:


3

ShellExecuteメソッドcmdを使用してウィンドウを非表示にします。次のレジストリ設定は、単一のファイルに対して機能します。

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\""

D:\VB_scripts\SU\1007076.vbs次のように読み取ります。

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

上記のスクリプトは、単一ファイル(またはファイルショートカットのターゲット)のフルパスを返し、追加CRLF(キャリッジリターンとラインフィード)します。次のように、CRLF使用のset /Pトリックを省略できます。

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

"二重引用符のペアでパスを囲む次の改善:

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

参考までに、Copy as Pathコンテキストメニューを保存したレジストリキーを次に示します。

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}"

本当にありがとうございました!ファイル(VBScript)を作成する必要がありますが、実際に動作します!すばらしいです!また、素敵な説明!:)
ジャニックH
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.