간단한 사용자 지정 상황에 맞는 메뉴 명령 만들기-마우스 오른쪽 단추로 클릭 한 파일 경로 / 이름을 사용하는 VB 스크립트를 어떻게 실행할 수 있습니까?

Rdt

파일을 다운로드하고 MD5 체크섬인지 확인하고 싶었습니다. 7Zip의 파일 컨텍스트 메뉴 출력에는 MD5 체크섬이 포함되어 있지 않으므로 Windows 사이트에서 fciv.exe를 다운로드하여 System32 폴더에 복사했습니다.

그런 다음 사용자 지정 상황에 맞는 메뉴 항목을 추가하려고 시도했습니다. Computer \ HKEY_CLASSES_ROOT * \ shell에서 레지스트리를 수정하고 그 아래에 명령 키가있는 MD5 키를 추가 cmd /k fciv.exe "%1"하여 솔루션 으로 실행할 수 있다는 것을 확인했습니다 .

그러나 더 나아가서 VB 스크립트를 사용하여 콘솔을 여는 대신 간단한 메시지 상자로 출력을 보내고 싶었습니다. 나는 코드를 발견 여기에 다음과 같이 :

Option Explicit

Const WshRunning = 0
Const WshFinished = 1
Const WshFailed = 2

Dim shell : Set shell = CreateObject("WScript.Shell")
Dim exec : Set exec = shell.Exec("fciv.exe filename-from-right-click")

While exec.Status = WshRunning
    WScript.Sleep 50
Wend

Dim output

If exec.Status = WshFailed Then
    output = exec.StdErr.ReadAll
Else
    output = exec.StdOut.ReadAll
End If

WScript.Echo output

이것이 내가 갇힌 곳이었습니다.

  1. 오른쪽 클릭 메뉴에서 사용할 수있는 파일 경로를 사용하도록 스크립트를 조정하는 방법과 스크립트를 실행하려고 할 때 두 번째로 조정하는 방법을 모릅니다.

  2. 상황에 맞는 메뉴를 사용하여 스크립트를 실행하려고하면 Windows에서 "이 앱은 PC에서 실행할 수 없습니다"팝업으로 차단합니다.

어떤 제안? 텍스트를 복사 할 수있는 대화 상자에있는 경우 보너스 포인트. 미리 감사드립니다!

Captain_Planet

예를 들어 c : \ temp \ md5.vbs를 만들고 스크립트가 작동한다고 가정하면이 레지스트리를 가져 와서 명령 값을 다음과 같이 설정하지 않는 이유는 무엇입니까?

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\MD5]
@="Get MD5 Checksum"

[HKEY_CLASSES_ROOT\*\shell\MD5\command]
@="wscript.exe \"c:\\temp\\md5.vbs\" \"%1\""

및 스크립트 :

Option Explicit

Const WshRunning = 0
Const WshFinished = 1
Const WshFailed = 2

Dim shell : Set shell = CreateObject("WScript.Shell")
Dim exec : Set exec = shell.Exec("fciv.exe " & chr(34) & Wscript.Arguments(0) & chr(34))

While exec.Status = WshRunning
    WScript.Sleep 50
Wend

Dim output

If exec.Status = WshFailed Then
    output = exec.StdErr.ReadAll
Else
    output = exec.StdOut.ReadAll
    InputBox "Copy and paste your MD5 checksum","MD5 Checksum",output 
End If

Set exec = Nothing
Set shell = Nothing

이것은 테스트되지 않았으며 하드 코딩 된 경로가 아닌 실제 세계에서 c : \ temp \의 위치를 ​​'가변'(환경 변수?) 할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관