解決

解決

笑わないでください。

私はデスクトップがロックダウンされた企業環境にいます。サードパーティのアプリをインストールすることはできません。

メモ帳は大体大丈夫ですが、一番の問題は、ファイルがすでに開いているかどうかを検出できないことです。結局、2 か所でファイルを編集することになります。

そこで、ファイルが開いているかどうかを確認するための小さな VBS を作成し、ファイルを 2 回開く代わりに、疑わしいウィンドウを表示するだけにすることにしました。

Dim Arg, var1
Set Arg = WScript.Arguments

'Parameter1, begin with index0
var1 = Arg(0)

set fso = CreateObject("Scripting.FileSystemObject")

Set oShell = CreateObject("WScript.Shell") 
If Not oShell.AppActivate( fso.GetFileName(var1) + " - Notepad") Then
   Dim objShell
   Set objShell = WScript.CreateObject( "WScript.Shell" )
   objShell.Exec("notepad.exe " + var1 )
   Set objShell = Nothing
End If

非常にうまく機能します。しかし...

「開く...」メニューのターゲットに vbs を設定できません。.bat、.cmd、.exe、.pif は設定できるようです。「.vbs」を手動で選択しても機能しません。.txt ファイルは「有効な win32 アプリケーションではありません」と表示されます。

VBS スクリプトでファイルを開くためのデフォルトのアクションを取得するにはどうすればよいですか?

答え1

1 行の 'wscript.exe %1' でバッチ ファイル (.cmd) から vbscript を呼び出します。cmd ファイルを送信先リストに追加します。

答え2

解決

Windows ファイルの関連付けは、システム全体またはユーザーごとに行うことができ、後者が優先されます。したがって、.txt特定のレジストリ キーを作成することで、ファイルの既定の動作を上書きできます。

  1. 開くコマンド・プロンプト

  2. 次のコマンドを入力または貼り付け、実際のパスにEnter置き換えてから押します。X:\Path\to\myscript.vbs

    reg add "HKCU\Software\Classes\txtfile\shell\open\command" /ve /t REG_SZ /d "\"%windir%\System32\wscript.exe\" \"X:\Path\to\myscript.vbs\" \"%1\"" /f
    

    変更はすぐに適用されます。

参考文献

答え3

ユーザーの一時ディレクトリにファイルを作成します1.cmd

1.cmd:

cmd

ファイルを開いて好きなことをしてください)

関連情報