ファイルを右クリックして出るメニューにアプリケーションを追加して関連付けるには?

解決


nino  2001-05-05 18:36:43  No: 74240  IP: [192.*.*.*]

エクセルデータを読み取って処理するというアプリを制作しているのですが、アプリの設定で、「エクセルファイル上での右クリックメニューにアプリとの関連付けを設定する」というチェックボックスをつくりたいのですが、追加方法と削除方法がわかりません。具体的には、右クリックすると出るメニューに「(アプリ名)で開く...」というメニュー項目を追加して、クリックするとこのアプリが開くという感じにしたいです。やり方のわかる方よろしくお願いします。また、この関連付けともうひとつの問題があるのですが、関連付けで起動したとしても、そのエクセルファイルを開くのにはそのファイルの位置と名称を取得しなければならないと思うのですが、その方法はどのようにしたらよいのでしょうか。ただ、起動するのでは意味がありませんので、そのファイルを開くという作業の仕方についても教えてください。よろしくお願いします。(Windows2k/VB6(SP5)/Excel2k)

編集    削除
たかみちえ  URL  2001-05-06 02:30:32  No: 74241  IP: [192.*.*.*]

ぁ、えーと、よく覚えてないんですけど…。
たしかレジストリに、そういう行があったような(当たり前ですね^^;)
レジストリを直接いじくるしか、手は思いつかないんですけど…。
HKEY_CLASSES_ROOTあたり、かもしれないんですけど、忘れちゃいました…。
見つけたら書かせていただきます。

編集    削除
たかみちえ  2001-05-06 02:34:04  No: 74242  IP: [192.*.*.*]

あ、後半のほう、答えてませんでしたね^^;
ファイルの位置は、たぶんふつうの関連付けと同じで、
Command関数に入ってると思いますけど…。
複数ファイルをいっぺんに送られたらどうしましょ^^;

編集    削除
nino  2001-05-06 03:24:58  No: 74243  IP: [192.*.*.*]

たかみちえさん、お返事ありがとうございます。
Command関数についてですが、MSDNで調べたんですが、ちょっとわかりません。よろしければ、記述方法を教えていただけませんでしょうか。それと、この記述は、どこに記入したら良いのでしょうか。Form_Loadのところでいいのでしょうか。よろしくお願いします。

編集    削除
たかみちえ  2001-05-06 10:32:50  No: 74244  IP: [192.*.*.*]

Command関数には、ふつうパスが入ってます。
コマンドラインのコマンドも、たぶん…。

これはまあ、FormのInitializeとかLoadに使っておくといいと思います。
わたしはInitializeを"イニチアライズ"と読むけど、
"イニシャライズ"が正しいようで…。
Dim イニチアパス As String
  イニチアパス = Command()

1  Maintext.text = DataLoading(イニチアパス)
  Else
    ・
    ・
    ・
  と、こんなかんじです。
1のところ、Maintext.text = DataLoading(Command)
でもいいような気もするんですけど、
これだと問題があるみたいです。
そういう関数多いですね。
(DataLoadingでは平気だけど、中でOpenメソッドを使うときにエラーが出る^^;)

編集    削除
たかみちえ  2001-05-06 10:35:16  No: 74245  IP: [192.*.*.*]

そうそう、言い忘れてましたが、
この関数はVBの中でテストしてるときには、
テストができない関数です。
でも、App.Title のプロパティメニュー
"コマンドライン引数"に、何か入れておくと、
それがCommand関数に入っているらしいです。

編集    削除
nino  2001-05-06 14:56:23  No: 74246  IP: [192.*.*.*]

たかみちえ さん、お返事ありがとうございました。
先程やってみました所、データ(ファイル名)の受け取りできました。詳しく記述方法などを解説していただいて、初心者にも大変わかりやすかったです。本当にありがとうございました。また、何かわからないことがあったときお世話になるかもしれませんが、よろしくお願いします。

編集    削除