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

Notion-MW
タグ: 手動差し戻し
Notion-MW
 
(同じ利用者による、間の1版が非表示)
220行目: 220行目:
<ul>
<ul>
<li><p>Windows 11の右クリックメニューに追加してくれるソフト</p>
<li><p>Windows 11の右クリックメニューに追加してくれるソフト</p>
<p>[https://github.com/ikas-mc/ContextMenuForWindows11 link_preview]</p>
<p>[https://github.com/ikas-mc/ContextMenuForWindows11 https://github.com/ikas-mc/ContextMenuForWindows11]</p>
<p>フォルダ背景を右クリックしたメニューに追加できない([https://github.com/ikas-mc/ContextMenuForWindows11/issues/44 https://github.com/ikas-mc/ContextMenuForWindows11/issues/44])(いや、使ってみたら普通にできてるっぽい?)、アプリ1つにつき1メニューしか追加できない([https://github.com/ikas-mc/ContextMenuForWindows11/issues/45 https://github.com/ikas-mc/ContextMenuForWindows11/issues/45])(これはWindows側がそういう仕様っぽいので厳しそう)</p></li>
<p>フォルダ背景を右クリックしたメニューに追加できない([https://github.com/ikas-mc/ContextMenuForWindows11/issues/44 https://github.com/ikas-mc/ContextMenuForWindows11/issues/44])(いや、使ってみたら普通にできてるっぽい?)、アプリ1つにつき1メニューしか追加できない([https://github.com/ikas-mc/ContextMenuForWindows11/issues/45 https://github.com/ikas-mc/ContextMenuForWindows11/issues/45])(これはWindows側がそういう仕様っぽいので厳しそう)</p></li>
<li><p>Microsoftの関連するサンプル<br />
<li><p>Microsoftの関連するサンプル<br />
234行目: 234行目:
まずは、COMを用いて実装するという方法がある。基本的にはこちらが綺麗な解決策である。
まずは、COMを用いて実装するという方法がある。基本的にはこちらが綺麗な解決策である。


IExecuteCommandというインターフェースを具体的に実装している[https://learn.microsoft.com/en-us/windows/win32/shell/samples-executecommandverb Microsoftのサンプル]があったので、それを参考に、「任意コマンドを引数にとり、取得したファイル・フォルダの情報をそのコマンドの標準入力にUTF&#45;8で送信する」というプログラムを作成した。
IExecuteCommandというインターフェースを具体的に実装している[https://learn.microsoft.com/en-us/windows/win32/shell/samples-executecommandverb Microsoftのサンプル]があったので、それを参考に、「取得したファイル・フォルダの情報を引数または標準入力として渡しつつ指定されたコマンドを起動する」というプログラムを作成した。


[https://github.com/ge9/ExecuteCommand-Pipe link_preview]
[https://github.com/ge9/ExecuteCommand-Pipe https://github.com/ge9/ExecuteCommand-Pipe]


COMを使っていることからわかるように、コマンドラインを介さず直接Explorerからデータが送られてくるので、他の方法に共通してみられるパス長さやファイル個数の制限が(事実上)皆無であり、非常に強力である。
COMを使っていることからわかるように、コマンドラインを介さず直接Explorerからデータが送られてくるので、他の方法に共通してみられるパス長さやファイル個数の制限が(事実上)皆無であり、非常に強力である。