• ベストアンサー

OLESelfRegisterプロパティの取得

タイトルのとおりです。 レジストリ登録が可能かどうか判断するために exeファイルや dllファイルのプロパティで OLESelfRegisterという項目が あるかどうかのチェックを行いたいのですが、 VisualBasic(5.0or6.0)で 取得できるのでしょうか? APIでも何でもいいので、 教えてもらえませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

これって既にコンパイルしてあるEXEやDLLのってことですよね? プロパティのOLESelfRegisterでは判断できませんよ。 バージョン情報ってなくてもかまわないんですから。 この情報を信用するのは危険かと。 それでもかまわないならこちらをどうぞ。 http://vbvbvb.com/jp/gtips/0751/gGetFileVersionInfoFileDescription.html VerQueryValue()の引数を変えれば取得できるでしょう。 ちなみにレジストリ登録が可能なインプロセスCOMサーバ(つまり登録可能なActiveX EXE以外のCOM)であれば、DllRegisterServerという関数がエクスポートされているはずなので、バージョン情報に頼らずLoadLibraryとGetProcAddressで判断可能かと。 ただActiveX EXEだと、共通的な判断方法はないのでは?

kakusuke
質問者

お礼

ありがとうございました。 VerQueryValue()の戻り値で 存在チェックできました。 助かります!!

kakusuke
質問者

補足

回答ありがとうございます。 この情報を知りたいのは、 パッケージ開発時に ActiveX EXEのレジストリ登録の情報を バージョンごとに管理するツールを作りたいからです。 ですので、存在チェックだけできればいいのですが、 VerQueryValue()では、 存在チェックが出来ません。 ActiveX Exeも通常Exeも Regserverコマンドを使って (レジストリ登録できないのは勝手にはじかれるので) レジストリ登録しているのですが、 それだと、時間がかかるので。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • n-ie
  • ベストアンサー率26% (16/60)
回答No.1

support toolsのfileverを使って、出力結果で判断する…というのじゃダメでしょうか(^^;

参考URL:
http://www.atmarkit.co.jp/fwin2k/win2ktips/316filever/filever.html
kakusuke
質問者

お礼

回答ありがとうございました。

kakusuke
質問者

補足

すみません、 あくまでも、VBに値が取得できる形にしたいのです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • DLLのプロパティ値の非共有

    VBで作成したDLLのプロパティ共有 すみません。DLL作成初心者です。 VBでDLLを作成してみたんですが、Original.Exeから呼び出した Called_A.DLLをそのままに、Called_B.DLLをOriginal.Exeから呼び出しました。 そこで、Called_B.DLLからもCalled_A.DLLを呼び出す事が出来るのですが、 Called_B.DLLから呼び出したCalled_A.DLLのプロパティを変更したところ、 Original.Exeから呼び出したCalled_A.DLLのプロパティの値も変更されているんです。 DLLってのは、インスタンスをあっちこっちで作ることができ、各々で作ったインスタンス内で 閉じられているもんだと思っていました。 作り方で共有する事が出来たり、各々で閉じたりそうなっちゃうんですか? ダイナミックリンクライブラリっていう位だから、各々で閉じる事は出来ないんですかね? メモリを共有するのとかしないとかが絡んでいるのかなと思いましたが、ヘルプをみても よく分からないし、その手のDLLについて書いてあるサイトを見てみたんですが、 いまいちよく分からず的を得ているのか得てないのかすら分かりません。 すみませんが、どなたかご教授お願いします。 相関図) 1-1: Original.Exe → 1-2: Called_A.DLL ↓ 2-1: Called_B.DLL → 2-2: Called_A.DLL ※何故か2-2で設定したプロパティが1-2のプロパティにも反映されている... 環境: WindowsXP Professional VisualBasic6(SP5) InternetExplolor6

  • ExcelVBAでファイルのプロパティを取得

    こんにちは ExcelVBAでファイルのプロパティを取得する方法をお伺いします。 更新日時やファイルサイズの取得についてはいくつか参考にするサイトが見つかりました。 今回知りたいのはJPEGなど画像ファイルの縦横のピクセル数です。ファイルのプロパティとしては「大きさ ○○×△△」「横 ○○ピクセル」「高さ △△ピクセル」と表示される項目です。 これをExcelVBAで取得する方法をお教えください。

  • ファイルのプロパティ・バージョン情報・コメントを取得する方法?

    Visual Basicで取得したファイルの プロパティにある、バージョン情報の コメント取得する方法を御存知の方、 教えてください。 恐らくAPIを使うのだと思うのですが、 わかりません。 宜しくお願い致します。

  • Visual Basic5.0でファイルの取得

    VBの初心者です。 今、VisualBasic5.0を使って、UNIXの中のCSVファイルを取ってくるというプログラムを作っています。 API関数を使って取ってくることができるのは確認済みなのですが、できればAPI関数を使わずに取得したいのです。 VBhelpの中で使えそうなオブジェクトや関数など探してみたのですが、直接ファイルを取得するようなものは見つかりませんでした。 VB5.0を使ってプログラムを作るという条件があるので、最新のVB6.0の方でできるのかどうかは調べていません。 わかられる方がおられましたら、よろしくお願いします。

  • file関数によるXMLの取得について

    XMLの取得をしようとしているのですが、PHPのバージョンが4.1のためSimpleXMLが使えずfile関数を使おうとしています。 例えば取得したいXMLの値が、 <Result>  <Title>タイトル</Title>  <Summary>  文章  </Summary>  <Url>  http://  </Url> </Result> だった場合、<Title>,<Summary>,<Url>はどのように取得するのでしょうか? 以下の方法で取得をしてみようとしたのですが、これだと<Summary>と<Url>は取得できるのですが<Title>が取得できません... ↓<Title>を取得する場合 $api_url = "http://"; $api_url2 = implode("",file("$api_url")); $title_exp = explode("<Title>",$api_url2); $title_count = count($title_exp); for($i=0;$i<$title_count;$i++){ $title = explode("</Title>",$title_exp[$i]); }; <Title>が他の項目と違うところは改行がない部分だけのようなのですが、どのようにすれば取得できるのでしょうか? 色々なサイトを見ながら手探りで学んでいますのでおかしなところがあるかもしれません。 その点もご指摘いただければ幸いです。 宜しくお願いします。

    • 締切済み
    • PHP
  • mp3のプロパティを変えるには

    MP3ファイルのプロパティに アルバムのタイトル、アーティスト、ジャンルなどの項目がありますがファイルのプロパティを開いてみてもタイトルとコメントしか入力することしかできません アルバムやジャンル、アーティストを入力するにはどうしたらよいのでしょうか?

  • プロパティのバージョン情報書き換えについて

    VBで作成したexeやdllファイルのプロパティで見れるバージョン情報内の「コメント」や「ファイルバージョン」等は作成時のソースファイルなしでも書き換えることができるのでしょうか?

  • システムのプロパティについて

    XPでマイコンピュータ → プロパティ を選ぶと タイトル:rundell32.exe-コーポネントが見つかりません。 内容:framedyn.dllが見つからないため、このアプリケーションを開始できませんでした。アプリケーションをインストールしなおすとこの問題は解決される場合があります。 と表示されてOKをクリックすると問題なくシステムのプロパティが表示されます。 framedyn.dllはあるのに探してくれません。 そこで調子も悪くなってきたので、OSの入れ替えをやってはじめは出なかったのですが、また突然出てくるようになりました。(昨日入れ替え) ノートン入れてますが、ウィルスとかですか? トラブルはないのですが、気になるのでよろしくお願いします。

  • dllファイルをレジストリ登録できない

    Windows Vistaを使っています。 あるdllファイルがありまして、 そのファイルをレジストリ登録したいと思っております。 Windows XPでは正しくレジストリ登録できたdllのファイルなのですが、 Vistaで実行するとエラーとなってしまいます。 Vistaでの実効手順は以下の通りです。 (1)C:\WINDOWS\system32\cmd.exeを管理者権限で実行 (2)regsvr32 ~~.dllを実行 (2)を実行すると添付ファイルのメッセージが表示されてしまいます。 私なりに調べてみまして、 (1)を管理者権限で実行すること。 (2)でdllファイルをフルパスで指定して実行すること。 の2点は試しましたが、結果は同じでした。 何かほかに考えられることはございませんか? 解決できそうな案を、ご提示いただければ、私が確かめます。 ぜひご教示お願いいたします。

  • セキュリティソフトをすり抜ける

    ウィルスセキュリティゼロを使っていますが、 中国からのメールの添付ファイルからウイルス感染して しまいます。一応、ブロックしました。ご安心ください。 みたいなメッセージが出てはいますが、実際にはすり抜けていて ウィルスチェックにも引っかかりません。 ものは M1.exe 55550.dll 55551.dll mydoor0.dll csdoor1.dll (この ??door?.dll タイプは多数あり)1.exe 2.exe のパターンと 1.exe~abcde123 みたいになっているやつ。 レジストリに書き込まれていてレジストリから消去して再起動しない とファイルを消去できません。 9月後半から時々感染し、亜種と思われるパターンがいくつか みられます。動作が非常に遅くなり、放っておくとアプリの実行が できなくなってしまいます。・・・exeファイルのショートカット から実行できなくなってしまいます。・・・きっちりブロック してもらいたいのですができないのでしょうか。