C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

プログラムを関連付けるには /じる (19/11/26(Tue) 22:55) #93189
Re[1]: プログラムを関連付けるには /じる (19/11/26(Tue) 22:59) #93190 解決済み
  └ Re[2]: プログラムを関連付けるには /じる (19/11/26(Tue) 23:11) #93191
    └ Re[3]: プログラムを関連付けるには /とっちゃん (19/11/27(Wed) 10:58) #93195
      └ Re[4]: プログラムを関連付けるには /じる (19/11/27(Wed) 22:28) #93201
        └ Re[5]: プログラムを関連付けるには /Azulean (19/11/27(Wed) 23:09) #93205
          └ Re[6]: プログラムを関連付けるには /じる (19/11/28(Thu) 22:25) #93236 解決済み


親記事 / ▼[ 93190 ]
■93189 / 親階層)  プログラムを関連付けるには
□投稿者/ じる (1回)-(2019/11/26(Tue) 22:55:07)

分類:[.NET 全般] 

2019/11/26(Tue) 22:59:35 編集(投稿者)

情報が見つかりましたので
また、後ほど再質問します

[ □ Tree ] 返信 編集キー/

▲[ 93189 ] / ▼[ 93191 ]
■93190 / 1階層)  Re[1]: プログラムを関連付けるには
□投稿者/ じる (2回)-(2019/11/26(Tue) 22:59:45)
No93189 (じる さん) に返信
> 2019/11/26(Tue) 22:59:35 編集(投稿者)
>
> 情報が見つかりましたので
> また、後ほど再質問します
>
解決済み
[ 親 93189 / □ Tree ] 返信 編集キー/

▲[ 93190 ] / ▼[ 93195 ]
■93191 / 2階層)  Re[2]: プログラムを関連付けるには
□投稿者/ じる (3回)-(2019/11/26(Tue) 23:11:37)
VB.NETを使って
D&Dすることでファイルを読み込むプログラムを作成しています。

毎回、D&Dするのは面倒ですので、
ファイルの関連付けを行い、
設定した拡張子のファイルをダブルクリックするだけで
そのファイルがD&Dされた状態で、プログラムが起動するようにしたいと考えています。
また、関連付けられたファイルのアイコンも
自分で用意したicoファイルが設定されるようにしたいと考えています。

https://dobon.net/vb/dotnet/system/associatedapp.html

このページに書かれた方法で
ファイルの関連付け設定だけはうまくできました。

しかし、アイコンの設定がうまくいきません。

このことは記事のコメントにも書かれてあり、


> サンプルのiconPathとiconIndexの値を変えることで、できませんか?

という回答がありますが、
これらの設定を変えてみましたが、
やはりアイコンを登録することはできませんでした。

どのようにすれば良いでしょうか?

[ 親 93189 / □ Tree ] 返信 編集キー/

▲[ 93191 ] / ▼[ 93201 ]
■93195 / 3階層)  Re[3]: プログラムを関連付けるには
□投稿者/ とっちゃん (650回)-(2019/11/27(Wed) 10:58:52)
No93191 (じる さん) に返信

>>サンプルのiconPathとiconIndexの値を変えることで、できませんか?
>
> という回答がありますが、
> これらの設定を変えてみましたが、
> やはりアイコンを登録することはできませんでした。
>
> どのようにすれば良いでしょうか?
>
ドボンさんのところのサンプルの例でいえば、
1. iconPath という文字列変数に、表示したいアイコンファイルのフルパスを設定。好きなアイコンのパスをセット
2. iconIndex に、0 を入れる(1がアイコンファイルのパスという前提)
という回答になります。

ドボンさんのサンプルプログラムは、アイコンパスを
Application.ExecutablePath
としています。
これだと、実行中のEXEファイルになり、そのアイコン(0)を指定となっています。

それ以外にしたい場合は、Application.ExecutablePath の代わりに
アイコンファイルのパスを指定すればOKです。

アイコンファイルを指定する場合は、インデックスは0を指定します。

[ 親 93189 / □ Tree ] 返信 編集キー/

▲[ 93195 ] / ▼[ 93205 ]
■93201 / 4階層)  Re[4]: プログラムを関連付けるには
□投稿者/ じる (4回)-(2019/11/27(Wed) 22:28:00)
ありがとうございます。

PCを再起動するとアイコンが反映されることを確認できました。

しかし、設定後に即時反映させたいのですが
どのようにすれば良いですか?

ファイルの右クリックメニューを開き
プログラムを開く を選択
常にこのアプリを使って.xxxファイルを開く にチェックを入れてOKボタンを押すと
同様に関連付けを行うことができるのですが、
こちらの方法だとアイコンは即時反映されます。

設定前後のレジストリを比較してみましたが
どこの設定が生かされているのかよく分かりませんでした。

どのようにしたら良いですか?


[ 親 93189 / □ Tree ] 返信 編集キー/

▲[ 93201 ] / ▼[ 93236 ]
■93205 / 5階層)  Re[5]: プログラムを関連付けるには
□投稿者/ Azulean (1105回)-(2019/11/27(Wed) 23:09:39)
SHCNE_ASSOCCHANGED を指定して SHChangeNotify を呼ぶ必要があると思います。
https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shchangenotify

(レジストリに書き込むだけでは explorer は気づかないので、教えてあげる必要がある)
[ 親 93189 / □ Tree ] 返信 編集キー/

▲[ 93205 ] / 返信無し
■93236 / 6階層)  Re[6]: プログラムを関連付けるには
□投稿者/ じる (5回)-(2019/11/28(Thu) 22:25:32)
これでした!!!!!
どうもありがとうございました!!!!!
解決済み
[ 親 93189 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -