web-dev-qa-db-ja.com

カスタム名でコンテキストメニューに新しい「新規」サブメニューを作成する

何か試してみたいと思うたびに、html、css、jsなどのファイルをコーディングして作成することを何度も試してみたいと思います。これを回避するために、テンプレートhtml、cssなどのファイルを作成し、コンテキストメニューの「新規」に追加しました( 「新規」コンテキストメニューに項目を追加するにはどうすればよいですか? )。

現在、4つのアイテムを追加しています。 html、css、js、php。 「新規」サブメニューが少し混雑しました。これらのファイルを追加できるカスタム名(「コーディング」など)で新しいサブメニューを作成できるかどうか考えています。実際の「新規」サブメニューは混雑が少なく、新しいサブメニューの下でこれらのコーディングファイルに簡単にアクセスできました。

もう1つ考えてみましょう。この新しいサブメニューは、必ずしもコンテキストメニューで適切である必要はありません。 「新規」メニュー内にある場合があります。これら4つのファイルをグループ化したいだけです。

最悪のシナリオ、「新規」サブメニューを再注文できますか?これらの4つを上部または下部に積み上げたいのですが。

enter image description here


更新:この機能用に repository を作成しました。お気軽にご確認ください。

7
akinuri

私はこれに対する解決策を探していましたが、私が思いついた最も近いことは、テンプレートファイルのコピーを作成するスクリプトを呼び出すコンテキストメニューに新しい項目を追加することです。

これは私が本当に望んでいることではありませんが、これは誰かにアイデアを与えるかもしれないので、とにかくこれを投稿します。

まず、コンテキストメニューに項目を追加する方法を探しました。たとえば、コマンドプロンプト。次のレジストリキーが仕事をします。

Windows Registry Editor Version 5.00

; Directory\Background\Shell => on empty space

[HKEY_CLASSES_ROOT\Directory\Background\Shell\cmd]
"Icon"="cmd.exe,0"
@="Command Prompt"

[HKEY_CLASSES_ROOT\Directory\Background\Shell\cmd\command]
@="cmd.exe"

; Directory\Shell => on a folder

[HKEY_CLASSES_ROOT\Directory\Shell\cmd]
@="Command Prompt"
"Icon"="cmd.exe,0"

[HKEY_CLASSES_ROOT\Directory\Shell\cmd\command]
@="cmd.exe /k cd %1"

次に、CSSファイルなどのファイルを作成するアイテムを追加します。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\Shell\CSS]
@="Cascading Style Sheet Document"
"Icon"="%SystemRoot%\\SysWow64\\Shell32.dll,69"

[HKEY_CLASSES_ROOT\Directory\Background\Shell\CSS\command]
@="C:\\Windows\\CustomNew\\css.bat"

コマンドプロンプトのレジストリキーと同様に、これは項目をコンテキストメニューに追加しますが、アプリケーションを実行する代わりに、batファイルを呼び出します。 batファイルの内容:

@echo off

copy C:\Windows\ShellNew\css.css %cd%

rename css.css "New Cascading Style Sheet Document.css"

css.cssC:\Windows\ShellNewテンプレートファイルがあります。右クリックしてCascading Style Sheet Documentを選択したディレクトリにテンプレートファイルのコピーを作成するだけです。

enter image description here

もちろん、この方法は使用しません。これは事態をさらに複雑にするだけです。すべてのbat、css、html、js、phpファイルがコンテキストメニューにあると想像してみてください。まだもっと良い解決策が必要です。


更新:

解決策を見つけたかもしれません。元の記事: デスクトップのプログラムとWindows 7以降のマイコンピューターのコンテキストメニューのカスケードメニューを追加-AskVG

カスタムメニューをコンテキストメニューに追加します。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\Shell\Coding]
"Icon"="C:\\Windows\\CustomNew\\coding.ico"
"MUIVerb"="Coding"
"SubCommands"="cmd;css;html;js;php;bat"
"Position"="Top"

このメニューを機能させるには、これらのコマンドcmdcsshtmlなどを定義する必要があります。たとえば、コマンドプロンプトを定義します。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell\cmd]
@="Command Prompt"
"Icon"="cmd.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell\cmd\command]
@="cmd.exe"

メニューのコマンドプロンプトをクリックすると、cmd.exeが実行されます。これは簡単です。トリッキーな部分は、新しいファイルを作成するアイテム/アプリを追加することです。

CSSファイルから始めましょう。次のレジストリはメニューに項目を追加します。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell\css]
@="Cascading Style Sheet Document"
"Icon"="%SystemRoot%\\System32\\Shell32.dll,-151"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell\css\command]
@="C:\\Windows\\CustomNew\\css.bat"

「Cascading Style Sheet Document」という名前の新しいアイテムがありますが、それをクリックしても通常は何も起こりません。現在のフォルダーに新しいファイルを作成するには、スクリプトを呼び出します。

作成するファイルの種類ごとにバッチスクリプトを用意しました。 bat.batcss.bathtml.batなど。それらをC:\Windows\CustomNewに配置します。また、テンプレートファイルbat.batcss.csshtml.htmlなどをC:\Windows\ShellNewに配置しました。

メニューの[Cascading Style Sheet Document]をクリックするたびに、CSSテンプレートファイルのコピーを作成して現在のフォルダーに配置するcss.batを呼び出します。

css.batファイル:

@echo off

copy C:\Windows\ShellNew\css.css "%cd%"

rename css.css "New Cascading Style Sheet Document.css"

スクリプトを呼び出さずに新しいcssファイルを作成する方が良いですが、それは可能ではないと思います。でも、何かアイデアがあれば是非聞いて欲しいです。

それを見ろ。美しい :)

enter image description here

2
akinuri

ここから取得した回答

「新規」メニューにアイテムを追加するには:

  • RUNダイアログボックスにregeditと入力し、Enterキーを押します。次に、「HKEY_CLASSES_ROOT」キーを展開します。
  • 次に、「新規」メニューで追加するファイルの種類を探します。 MP3ファイルタイプを追加するには、.MP3キーを探します。
  • それを右クリックして「新規->キー」を選択し、「ShellNew」という名前を付けます。
  • 右側のペインで右クリックし、「新規->文字列値」を選択します。 「NullFile」という名前を付けて、Enterキーを押します。
  • それでおしまい。 「新規」メニューにファイルタイプのエントリがすぐに表示されます。
1
vskand

Windows 10で2つのサブメニューを持つメニューを作成するのに役立つ添付のregファイル「テンプレート」を作成しました。これがお役に立てば幸いです。サブメニューを完了したら、regファイル内のすべてのコメントを削除します。

; -------------------------------------------- ------ 
 
 Windowsレジストリエディタバージョン5.00 
 
; add.submenu.to.context.menu.blank.template 
 ;(1) "MUIVerb" = "MyNewMenu"を
; DirectoryとBackgroundメニューの両方のトップレベルのTITLEに変更します(両方に同じTITLEが必要です)
;(2)すべてのMyMenu1を一意に変更しますこの1つのサブメニュー全体の識別子
;(3)「MUIVerb」= "FirstCommand"を最初のコマンド名に変更します
;(4)MUIVerb FirstCommandに続くコマンドライン(@)を希望する最初に変更します
コマンドライン
;(5) "MUIVerb" = "SecondCommand"を2番目のコマンド名に変更
;(7)コマンドライン(@)をMUIVerb SecondCommandの後に希望する秒に変更
コマンドライン
;(8)必要に応じてアイコンを変更します
;(9)ファイルを.regファイルとして保存
 
;これは右クリックするとコンテキストメニューを表示します-ディレクトリをクリック
 [HKEY_CLASSES_ROOT\Directory\Shell\MyMenu1] 
;ディレクトリレベルのメニュータイトル
 "MUIVerb" = "MyNewMenu" 
 "Ico n "=" cmd.exe "
" ExtendedSubCommandsKey "=" Directory \\ ContextMenus \\ MyMenu1 "
 
;これにより、ディレクトリの背景を右クリックするとコンテキストメニューが表示されます
 [HKEY_CLASSES_ROOT\Directory\background\Shell\MyMenu1] 
;バックグラウンドレベルのメニュータイトル
 "MUIVerb" = "MyNewMenu" 
 "Icon" = "cmd.exe" 
 "ExtendedSubCommandsKey" = "Directory \\ ContextMenus \\ MyMenu1" 
 
;サブメニューの下の最初のコマンド
 [HKEY_CLASSES_ROOT\Directory\ContextMenus\MyMenu1\Shell\open ] 
 "MUIVerb" = "FirstCommand" 
 "Icon" = "cmd.exe" 
 
 [HKEY_CLASSES_ROOT\Directory\ContextMenus\MyMenu1\Shell\open \コマンド] 
 @ = "cmd.exe/s/k pushd \"%V\"" 
 
;サブメニューの2番目のコマンド
 [HKEY_CLASSES_ROOT\Directory\ContextMenus\MyMenu1\Shell\runas] 
 "MUIVerb" = "SecondCommand" 
 "Icon" = "cmd.exe" 
 "HasLUAShield" = "" 
 
 [HKEY_CLASSES_ROOT\Directory\ContextMenus\MyMenu1\Shell\runas\command] 
 @ = "cmd.exe/s/k pushd \"%V\"" [.___ _。]; ---------------------------------------------- --- 
0
Bob Kushner