bắt đầu cmd.exe thu nhỏ / ẩn thông qua bối cảnh


1

Tôi đã tạo một lối tắt đến bối cảnh bằng cách thêm một sổ đăng ký mới với Khóa RE_SZ này: cmd.exe bắt đầu / phút / c echo% 1 | clip

Điều này cho phép tôi sao chép đường dẫn của tệp phải.

NHƯNG: Nó sẽ luôn mở một cửa sổ cmd trong một thời gian ngắn.

Làm thế nào tôi có thể ẩn cửa sổ cmd này?


Có thể phù hợp với bạn: nhấn giữ Shift Phím khi bạn bấm chuột phải vào tệp / thư mục (hoặc thậm chí chọn), sau đó chọn Copy As Path.
JosefZ

Cảm ơn bạn đã trả lời, nhưng phím tắt sẽ hiển thị một chương trình đặc biệt để gửi đến (kodi) và với menu "Sao chép đường dẫn" tiêu chuẩn, nó sẽ không hoạt động. Bạn có biết Registrykey lưu trữ menu ngữ cảnh Copy as Path không? Điều này sẽ rất thú vị, làm thế nào mà hoạt động.
Janik H

Câu trả lời:


3

Giấu cmd cửa sổ sử dụng Phương pháp ShellExecute . Cài đặt đăng ký tiếp theo hoạt động cho một tệp duy nhất:

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

Ở đâu D:\VB_scripts\SU\1007076.vbs đọc như sau:

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

Kịch bản trên trả về đường dẫn đầy đủ của một tệp (hoặc Mục tiêu của một phím tắt tập tin) và thêm CRLF (vận chuyển trở lại và linefeed). Bạn có thể bỏ qua CRLF sử dụng set /P lừa như sau:

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

Cải tiến tiếp theo để bao quanh đường dẫn trong một cặp " dấu ngoặc kép:

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

FYI, đây là khóa đăng ký lưu trữ Copy as Path trình đơn ngữ cảnh:

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

Cảm ơn bạn rất nhiều cho việc này! Mặc dù tôi phải tạo một tệp (VBScript) nhưng nó thực sự hoạt động! Tuyệt quá! Và cũng là một lời giải thích tốt đẹp! :)
Janik H
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.