запустите cmd.exe свернутый / скрытый через contextmenu

Я создал ярлык для contextmenu, добавив новый registryentry с помощью этого ключа RE_SZ:
УМК.exe start /min / c echo %1 / clip

Это позволяет мне скопировать путь к файлу, щелкнул Правой Кнопкой Мыши.

но: он всегда будет открывать окно cmd в течение короткого времени.

Как скрыть это окно cmd?

13
задан Janik H
10.03.2023 1:35 Количество просмотров материала 2481
Распечатать страницу

1 ответ

скрыть cmd окно с помощью ShellExecute метод. Следующий параметр реестра работает для одного файла:

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\SU07076.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

выше скрипт возвращает полный путь к одному файлу (или target ярлыка файла) и добавляет 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

FYI, вот ключ реестра, в котором хранится 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}"
3
отвечен JosefZ 2023-03-11 09:23

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх