[リストへもどる]
一括表示

投稿時間:2003/12/18(Thu) 10:42
投稿者名:タテオ
Eメール:
URL :
タイトル:
拡張子の関連付け
はじめまして VB歴2ヵ月のタテオです。

拡張子の関連付けをしたいのですが
レジストリ操作はあまり分かりません。

分かり易く関連付けと関連付け削除の方法を教えて下さい。
用途は自作した圧縮解凍プログラムの機能に組み込むためです。

よろしくお願いします。

環境
WINXP VB6(SP5)

投稿時間:2003/12/18(Thu) 23:13
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 拡張子の関連付け
> はじめまして VB歴2ヵ月のタテオです。
> 拡張子の関連付けをしたいのですが
> レジストリ操作はあまり分かりません。

回答ではありません。どなたからも回答がないと言う事は、私と同じ意見かも知れません。
regeditを使ってレジストリを操作されたりしておられるのなら別ですが、結構複雑になり
間違って、レジストリを壊してしまっても、なんですので今回は諦められたらどうでしょうか?

どうしてもやりたいなら、WEB で RegCreateKeyEx RegSetValueEx RegCloseKey 等を
キーワードに検索して見て下さい、それで理解できるようでしたら挑戦して見て下さい。

投稿時間:2003/12/19(Fri) 13:03
投稿者名:ak
Eメール:
URL :
タイトル:
Re^2: 拡張子の関連付け
こんにちは。

> > 拡張子の関連付けをしたいのですが
> > レジストリ操作はあまり分かりません。

レジストリの登録場所は「HKEY_CLASSES_ROOT」です。

例えば「*.abc」という拡張子をメモ帳に関連付けするには
1.「HKEY_CLASSES_ROOT\.abc」というキーを作成し、そのキーの値に
  「notobad.abc」という値にしておきます。
     ※ 値はEXE名+拡張子が一般的だと思いますが固有のものであれば何でも構いません。

2.「HKEY_CLASSES_ROOT\notobad.abc\Shell\Open\Command」というキーを
  作成し、そのキーの値に「notebad.exe %1」という値を入力します。
  ※ 値は EXEパス + %1
    
これで「*.abc」のファイルがメモ帳で開くようになります。

ファイルのアイコンを変更するには「HKEY_CLASSES_ROOT\notobad.abc\DefaultIcon」を作成
して値にアイコンファイルパスまたは「実行ファイル名,リソースID」を入れる事によって変更
する事ができます。

それ以外にも拡張子の設定は色々ありますが、通常上記ぐらいの設定で事足りると思います。

ここに詳しく載っています。
http://www.runan.net/program/registry/exttype.shtml

> > 分かり易く関連付けと関連付け削除の方法を教えて下さい。
削除するには「RegDeleteKey」を使用します。

レジストリの操作はかなり危険が伴いますので、レジストリ操作をする前に随時バックアップを
とっておいた方が良いと思います。(レジストリエディタでバックアップが取れます。)

私も覚えるまでに何回かレジストリを壊した事があります(何とか復旧しましたが・・・)。
しかしそれを恐れていては何も解決しないので頑張ってください。

まずはレジストリエディタの操作方法から覚えた方が良いと思います。
ファイル名をして実行から「regedit」で起動されます。

では。

投稿時間:2003/12/19(Fri) 14:39
投稿者名:タテオ
Eメール:
URL :
タイトル:
Re^3: 拡張子の関連付け
親切に教えて頂き有難う御座います。

実は試みた事はあります。
akさんの説明と同じ様にしました。
その時に書き込めたのですが、他の名前で値の設定なしもできました。

そんな事で諦めた事が度々あります。
値の設定なしもできるのはXPだからと思っています。
OSのアクセス権限の問題だとかとも聞いた事がありますから。

それで成功しないと思いましたが違いますか?

投稿時間:2003/12/19(Fri) 15:17
投稿者名:ak
Eメール:
URL :
タイトル:
Re^4: 拡張子の関連付け
> 値の設定なしもできるのはXPだからと思っています。
> OSのアクセス権限の問題だとかとも聞いた事がありますから。

XPだから失敗したという事なら他のアプリケーションはどうなっているのでしょう。
アプリケーション独自の拡張子をもつものは沢山ありますよね。
XPになってからそれらのアプリケーションの拡張子の関連付けがされていない
という事はまず無いと思います。ということはXPでも問題なくできる筈です。
VBもインストールすればVBPファイルをクリックするだけで起動するはずです。

VB自体にも「SaveSetting」などのレジストリ操作関数があるわけですから、それら
がXPから使用できなくなるという事は無いと思います。また関連付けの方法がXPから
変わったというのも考えにくいと思いますよ。

多分設定の方法が間違っているのだと思います。

とりあえずAdmin権限で色々試してみては如何でしょうか?

こちらはWin2000環境ですが問題なく関連付けできました。

投稿時間:2003/12/19(Fri) 19:32
投稿者名:タテオ
Eメール:
URL :
タイトル:
レジストリ操作のOCXありますか?
> こちらはWin2000環境ですが問題なく関連付けできました。

なら、チャレンジしますが初心者でも簡単にできる
そんなレジストリ操作のOCXないでしょうか?

教えて頂ければ幸いです。

投稿時間:2003/12/19(Fri) 23:32
投稿者名:えり〜
Eメール:
URL :
タイトル:
Re: レジストリ操作のOCXありますか?
> なら、チャレンジしますが初心者でも簡単にできる

失礼ながら、そのような姿勢での実装は止めた方が良いです。
花ちゃんさんも書いておられますが
レジストリを弄ると言うのは一つ間違えるとシステムを破壊します。
その辺をキチンと理解されてから実装してください。

> そんなレジストリ操作のOCXないでしょうか?

そのようなOCXを私は知りません。
先に述べたように仕組みをキチンと理解すれば
WinAPI関数を駆使して出来るでしょうし。

投稿時間:2003/12/21(Sun) 09:18
投稿者名:タテオ
Eメール:
URL :
タイトル:
チャレンジしましたが・・・
> とりあえずAdmin権限で色々試してみては如何でしょうか?

コンピュータ管理者に変更するって事ですか?
それになっていますが・・・

> こちらはWin2000環境ですが問題なく関連付けできました。

一応、チャレンジしました。どうも余分に値の設定なしができます。
何がいけないのか分かりません。

参考になるコードを載せてもらえませんか?

よろしくお願いします。

投稿時間:2003/12/21(Sun) 20:01
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: チャレンジしましたが・・・
ある程度自分で理解できないとレジストリを壊したりしますので、最初にも書きましたが
WEBを検索して調べて見ましたか?プログラムから実行するのは諦められたらどうですか? 
(額面通りVB歴2ヶ月なら)

>一応、チャレンジしました。どうも余分に値の設定なしができます。
>参考になるコードを載せてもらえませんか?

じゃ、なくて このようにコードを書きましたが、・・・・・・ といってコードを掲載して
教えを請うのが礼儀かと思います。

下記のコードを見て理解できなければ実行しないで下さい。

ご覧になられたようなので私のコードは削除させて頂きます。
代わりに下記で調べて下さい。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/wsmthregwrite.asp

投稿時間:2003/12/21(Sun) 20:47
投稿者名:タテオ
Eメール:
URL :
タイトル:
本当に有難う御座います。

> じゃ、なくて このようにコードを書きましたが、・・・・・・ といってコードを掲載して
> 教えを請うのが礼儀かと思います。
すみません。これからはコードを載せて質問します。
>
> 下記のコードを見て理解できなければ実行しないで下さい。
WSHですか? 関連付けのプログラムだと分かります。

> 解らない部分はヘルプやWEBで検索して調べて下さい。
調べてみます。それから試してみます。

本当に有難う御座います。