ちょっとWindows詳しい人に聞きたんですが、explorer.exeにファイルパスだけを渡して呼び出すと関連付けられたアプリケーションで開くのってどこにある仕様かわかりますか?
これがExcelで開く```$ explorer path/to/file.xlsx```
ちょっとWindows詳しい人に聞きたんですが、explorer.exeにファイルパスだけを渡して呼び出すと関連付けられたアプリケーションで開くのってどこにある仕様かわかりますか?
これがExcelで開く```$ explorer path/to/file.xlsx```
@boronology Win32だとShellExecute APIが一番近いはずだけれど、explorer.exeが中で微妙によしなにしてるかもしれない…って回答でいいんですかね。
@ponapalt 疑問の重点が「関連付けられたアプリケーションで開く」挙動ではなくて「explorer.exeにファイルパスだけを渡して呼び出す」ほうの挙動なんです。ある程度内情を明かすと特定の状況下でShellExecuteExがバグる問題があって、代わりにCreateProcessでファイルを開く方法を模索しています。
@boronology そういや公式のexplorer.exeのコマンドラインオプションに関する仕様が書かれたページがないですね…(探索中)
@boronology Shell.ShellExecuteとWin32のShellExecute系とで挙動違うとかいう闇割とありそう…
@ponapalt Shell.ApplicationのCOM Interface見る限りShellExecuteしてると考えるのが妥当そうでした。https://docs.microsoft.com/ja-jp/windows/win32/shell/shell-shellexecute推測どまりですが。
senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.
All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.