デフォルトエディタのフルパス取得方法 – プログラミング – Home

デフォルトエディタのフルパス取得方法
 
通知
すべてクリア

[解決済] デフォルトエディタのフルパス取得方法


DIO
 DIO
(@DIO)
ゲスト
結合: 18年前
投稿: 62
Topic starter  

こんにちは。
早速ですが質問です。

CreateProcessを使ってテキストファイルを
Windowsに登録してあるEditerで表示させたいので、
Windowsに登録してあるEditerのフルパスを取得する方法を
教えていただけないでしょうか?

よろしくお願いします。

Winxp VS2005 MFC ダイアログベース


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

拡張子からレジストリを調べ、取得することは可能です。

.txt の場合

HKEY_CLASSES_ROOT\.txt

の値を取得します。(【A】とする)

HKEY_CLASSES_ROOT\【A】\shell

を取得する。(【B】とする)
(規定の値をとることができる。つまりダブルクリックで実行されるエディタ)

HKEY_CLASSES_ROOT\【A】shell\【B】\command

を取得する。
これで、コマンド文字列が取得できますので、文字列中に を含む場合は、
次の に囲われたものが目的のパスになります。
(を含まない場合は全体が目的のパス)
# shlwapiのPathRemoveArgs、PathUnquoteSpacesで取得してもOK

ちなみに、APIのFindExecutableではopenのパスが取得できますが、
いろいろと不具合もあるらしいです。
参考: http://dobon.net/vb/dotnet/system/findassociatedexe.html


返信引用
DIO
 DIO
(@DIO)
ゲスト
結合: 18年前
投稿: 62
Topic starter  

早速の返事ありがとうございます。
早速試してみます・・・が、返信に時間がかかりそうです。
(レジストリ苦手)

ので、取り急ぎ返信のみで。


返信引用
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 21年前
投稿: 830
 

CreateProcess にこだわる必要が無いなら ShellExecute(Ex)


返信引用
DIO
 DIO
(@DIO)
ゲスト
結合: 18年前
投稿: 62
Topic starter  

ShellExecuteで解決しました。

Blueさん、tetrapodさん
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました