2008年07月16日

【C++系】.txtに関連付けられたexe起動

今日も役に立たないソースを書いた


知り合いに、IEのツールバーにcalcと打つと電卓が立ち上がるようにしたと言ったら、notepadと打ったら.txtに関連付けられたexe起動するようにして欲しいと言われる

なるほど。現状の「notepad → メモ帳開く」よりは数段役立ちそう
ただ、notepadコマンドはnotepadでいて欲しいので(気分的に)、コマンドのエイリアスをユーザが設定できるようにして(既にあるコマンドの上書きも可能)、勝手にやってねという方向を考える
(エイリアス機能はまだ付けてないけど)


で、.txtに関連付けられたアプリの取ろうとしてみる
試行錯誤の末、うちのサクラエディタは開くようになった。けど、これで大丈夫なのかとてもぁゃcぃソースになる


手順はこんな感じ

1. レジストリの下記キーから、Applicationという値を取得する
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt
(そこにsakura.exeとか入っている)

2. レジストリの下記キーから、デフォルト値を取得する
HKEY_CLASSES_ROOT\Applications\{1で取った値}\shell\open\command
(そこに"sakuraのパス" "%1" とか入ってる)

3. 2で取った値の、1個目のダブルコート内を抽出してShellExecute


ということをする
3の処理がなんか違う気がするけど、ちゃんとする気力がない・・・・
週末、がんばろう・・・・
posted by MW at 01:17| Comment(2) | TrackBack(0) | C++ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
まぁ、ネタだろうと思うけど、

ShellExecute(NULL, "open", "foo.txt", NULL, NULL, SW_SHOW);

で、勝手に.txtに関連づけしたプログラムでfoo.txtを開いてくれますよ。
Posted by drpepsi at 2008年07月18日 23:32
それだと foo.txt が存在してないと開けないのと、無題な状態で開けない(と認識してる)ので却下しますた

プロンプトでnotepadって打ったのと同じ感じで動作をさせたいのですが、なんかもっと簡単な方法があったら教えてください。。。
Posted by MW at 2008年07月19日 14:24
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。