VC++で作成した exe のアイコンを右クリック
するとデフォルトでなんらかのメニューが出てきますが
これを制御するにはどうすればいいのでしょうか。
たとえばアイコンを右クリックするとメニューに
「設定」という項目が追加されていて、
それをクリックするとそのexeファイルの設定ダイアログが
表示されるようにするとか、できますでしょうか。
よろしくお願いいたします。
右クリックメニューを変更する方法はいくつかありますが…おそらく、ご希望のようなものは難しいでしょう。
右クリックメニューを出す機能も、そのメニューを変更する機能も、自作ソフトではなく、Windows の機能ですから。
すべての exe ファイルの右クリックメニューに「設定」が追加されてしまい、自作の特定の exe ファイルでしか機能しない(メモ帳にも電卓にも「設定」メニューは出るが、クリックしても何も起きない)のでよければ簡単かもしれませんが、それでもよろしいのでしょうか?
コンテキストメニュー拡張を使い、exe が何らかのデータを持っている場合のみ「設定」を追加するという方法なら、解決できるかもしれません。
シャノンさん。ありがとうございます。
> 自作の特定の exe ファイルでしか機能しない
> (メモ帳にも電卓にも「設定」メニューは出るが、
> クリックしても何も起きない)
> のでよければ簡単かもしれませんが、
> それでもよろしいのでしょうか?
これはちょっと困ります。
なので
> コンテキストメニュー拡張を使い、exe が何らかのデータを持っている場合のみ
> 「設定」を追加するという方法なら、解決できるかもしれません。
このお話を具体的にはどうすればいいのか
もう少し詳しく教えていただけないでしょうか。
>> コンテキストメニュー拡張を使い、exe が何らかのデータを持っている場合のみ
>> 「設定」を追加するという方法なら、解決できるかもしれません。
> このお話を具体的にはどうすればいいのか
> もう少し詳しく教えていただけないでしょうか。
通常の、いわゆる「ファイルの関連付け」では、拡張子に関連付けたコマンドは、問答無用で表示されてしまいます。
が、シェル拡張という方法を使うと、ファイルの内容を判断して、表示されるメニューを変えることができます。
DLL をつくり、それを特定の方法でレジストリに登録し、exe と関連付けます。
すると、exe ファイルを右クリックした際、メニューが表示される前に、DLL 内の関数が呼ばれます。
この関数内で、これから表示されるメニューに手を加えることができますので、exe のファイルの内容を調べ、「設定」メニューを出すべきものだった場合だけ、メニューアイテムを追加するということができます。
シャノンさん。度々ありがとうございます。
返事が遅くなり申し訳ありませんでした。
ん〜英語サイトですか(^^ゞ
出来るかどうかわかりまっせんが、がんばってみます。
ありがとうございました。
ツイート | ![]() |