「Windowsの右クリックメニューから複数ファイルをまとめて開く」の版間の差分

Notion-MW
タグ: 差し戻し済み
Notion-MW
タグ: 手動差し戻し
10行目: 10行目:
まず、Windows11に移行すると右クリックメニューの項目数が大幅に削られており、とても使いにくいので、Windows10までの仕様に戻す必要がある。[https://pc-karuma.net/right-click-context-menu-back-on-windows-11 Windows 11 &#45; 右クリックメニューを旧仕様に戻す方法 &#45; PC設定のカルマ]などに従って修正しよう。コマンド例は以下。これはユーザーごとの設定なので、<strong>管理者権限は不要</strong>である。
まず、Windows11に移行すると右クリックメニューの項目数が大幅に削られており、とても使いにくいので、Windows10までの仕様に戻す必要がある。[https://pc-karuma.net/right-click-context-menu-back-on-windows-11 Windows 11 &#45; 右クリックメニューを旧仕様に戻す方法 &#45; PC設定のカルマ]などに従って修正しよう。コマンド例は以下。これはユーザーごとの設定なので、<strong>管理者権限は不要</strong>である。


<syntaxhighlight lang="python">
<syntaxhighlight lang="javascript">reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve</syntaxhighlight>
 
javascript
reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve</syntaxhighlight>
ファイルを開く操作ならダブルクリックでできるわけで、それでもあえてファイルを右クリックするユーザーの層を考えれば、使用頻度の高いメニューに絞る必要がないことは明らかである。右クリックメニューは動作が重いという問題点も指摘されてきたが、それなら項目数を削る以外の方法でパフォーマンスを改善するのが筋だろう。そもそも、Windows 11の右クリックメニューもそれほど快適な動作ではない。
ファイルを開く操作ならダブルクリックでできるわけで、それでもあえてファイルを右クリックするユーザーの層を考えれば、使用頻度の高いメニューに絞る必要がないことは明らかである。右クリックメニューは動作が重いという問題点も指摘されてきたが、それなら項目数を削る以外の方法でパフォーマンスを改善するのが筋だろう。そもそも、Windows 11の右クリックメニューもそれほど快適な動作ではない。


34行目: 31行目:
これはどうやらClipchampのメニューが悪いらしく、[https://www.elevenforum.com/t/add-or-remove-edit-with-clipchamp-context-menu-in-windows-11.6882/ Add or Remove Edit with Clipchamp Context Menu in Windows 11 Tutorial | Windows 11 Forum]([https://www.elevenforum.com/t/clipchamp-context-menu-removal.6150/ Clipchamp context menu removal | Windows 11 Forum]に書いてあった)や[https://www.naporitansushi.com/clipchamp-context-menu-disable/# Windowsの右クリックの「Clipchampで編集」を削除する方法 | ナポリタン寿司のPC日記]に書いてある通り、Clipchampのメニューを非表示にすると治る。コマンド例は以下。
これはどうやらClipchampのメニューが悪いらしく、[https://www.elevenforum.com/t/add-or-remove-edit-with-clipchamp-context-menu-in-windows-11.6882/ Add or Remove Edit with Clipchamp Context Menu in Windows 11 Tutorial | Windows 11 Forum]([https://www.elevenforum.com/t/clipchamp-context-menu-removal.6150/ Clipchamp context menu removal | Windows 11 Forum]に書いてあった)や[https://www.naporitansushi.com/clipchamp-context-menu-disable/# Windowsの右クリックの「Clipchampで編集」を削除する方法 | ナポリタン寿司のPC日記]に書いてある通り、Clipchampのメニューを非表示にすると治る。コマンド例は以下。


<syntaxhighlight lang="python">
<syntaxhighlight lang="javascript">reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" /v {8AB635F8-9A67-4698-AB99-784AD929F3B4} /f</syntaxhighlight>
 
javascript
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" /v {8AB635F8-9A67-4698-AB99-784AD929F3B4} /f</syntaxhighlight>
Clipchampを表示したまま順番を治す方法は不明だが、自分でメニューを作ればできるかもしれない。Clipchampのメニューの実装に使われていると思われるIContextMenuについては後でも述べているのでそちらも参照。おそらくClipchampによるこのインターフェースの実装にバグがあるためにこのような挙動をしているのであろう。
Clipchampを表示したまま順番を治す方法は不明だが、自分でメニューを作ればできるかもしれない。Clipchampのメニューの実装に使われていると思われるIContextMenuについては後でも述べているのでそちらも参照。おそらくClipchampによるこのインターフェースの実装にバグがあるためにこのような挙動をしているのであろう。


165行目: 159行目:
拡張子が.tで始まるファイル(&#42;.txt, &#42;.ttfなど)のみにメニューを追加するサンプル(から抜粋)。
拡張子が.tで始まるファイル(&#42;.txt, &#42;.ttfなど)のみにメニューを追加するサンプル(から抜粋)。


<syntaxhighlight lang="python">
<syntaxhighlight lang="vb.net">IFACEMETHODIMP CNonDefaultDropMenuVerb::QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT /*idCmdLast*/, UINT /*uFlags*/)
 
vb.net
IFACEMETHODIMP CNonDefaultDropMenuVerb::QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT /*idCmdLast*/, UINT /*uFlags*/)
{
{
     FORMATETC fmte = { CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
     FORMATETC fmte = { CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
287行目: 278行目:
README.mdにもあるが起動に用いる基本的な構文(レジストリに登録する値)は以下のようである(※ここでは64bit版を使うものとして説明しているが、32bit版でも全く同様)。
README.mdにもあるが起動に用いる基本的な構文(レジストリに登録する値)は以下のようである(※ここでは64bit版を使うものとして説明しているが、32bit版でも全く同様)。


<syntaxhighlight lang="python">
<syntaxhighlight lang="c">"C:\path\to\singleinstance_x64.exe" "%1" "C:\Program Files\path\to\app.exe" "$files" --si-timeout 1000 --option-to-app-1 --option-to-app-2</syntaxhighlight>
 
c
"C:\path\to\singleinstance_x64.exe" "%1" "C:\Program Files\path\to\app.exe" "$files" --si-timeout 1000 --option-to-app-1 --option-to-app-2</syntaxhighlight>
&quot;C&#58;\path\to\singleinstance_x64.exe&quot;、&quot;%1&quot;、&quot;C&#58;\Program Files\path\to\app.exe&quot;、&quot;$files&quot;の順番はおそらくこの通りである必要がある。その後にあるものはapp.exeにオプションとしてそのまま渡されるが、<strong><code>&#45;&#45;si&#45;timeout n</code></strong><strong>に限り</strong>、singleinstance_x64.exeが解釈し、app.exeに渡されない。このオプションはSingleInstance&#45;Launcherに対して次のファイルが渡されてくるのを待つタイムアウト期間をミリ秒で指定するものである。短すぎると、右クリックメニューの処理が遅い場合に途中で打ち切られてしまう可能性がある。長すぎると、その期間待つまでapp.exeは呼ばれないため、タイムラグが長く不便に感じる可能性がある。特に動作が重いPCでなければ1000(1秒)くらいにしておけば十分だろう。もう少し短くてもいいかもしれない。
&quot;C&#58;\path\to\singleinstance_x64.exe&quot;、&quot;%1&quot;、&quot;C&#58;\Program Files\path\to\app.exe&quot;、&quot;$files&quot;の順番はおそらくこの通りである必要がある。その後にあるものはapp.exeにオプションとしてそのまま渡されるが、<strong><code>&#45;&#45;si&#45;timeout n</code></strong><strong>に限り</strong>、singleinstance_x64.exeが解釈し、app.exeに渡されない。このオプションはSingleInstance&#45;Launcherに対して次のファイルが渡されてくるのを待つタイムアウト期間をミリ秒で指定するものである。短すぎると、右クリックメニューの処理が遅い場合に途中で打ち切られてしまう可能性がある。長すぎると、その期間待つまでapp.exeは呼ばれないため、タイムラグが長く不便に感じる可能性がある。特に動作が重いPCでなければ1000(1秒)くらいにしておけば十分だろう。もう少し短くてもいいかもしれない。


%1や$filesの両側にダブルクォーテーションがないと、空白を含むファイル名を正しく扱えない。GitHubのサンプルでは付いていないものもあるので注意。
%1や$filesの両側にダブルクォーテーションがないと、空白を含むファイル名を正しく扱えない。GitHubのサンプルでは付いていないものもあるので注意。
[[Category:IT]][[Category:Windows]]{{#seo:|title={{FULLPAGENAME}} - Turgenev's Wiki}}
[[Category:IT]][[Category:Windows]]{{#seo:|title={{FULLPAGENAME}} - Turgenev's Wiki}}