• ベストアンサー

dll のレジストリへの登録

自分で作った dllを VBのソースで登録する方法があったら教えてください。

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

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

全くの未検証です。 ぼくは自分のPCの送るに二つのショートカット C:\WINNT\System32\RegSvr32.exe C:\WINNT\System32\RegSvr32.exe /u を用意していて、エクスプローラで登録/解除したいDLLのファイルパスをパラメータに送っています。 ちょっとわけあって、今は実験できないPCでコードを組みましたので、サンプルは実行を一度もしてません。 でも、たぶんこんな感じではないかな? Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long sub test   Dim lngRet As Long   Dim strBuff As String * 260   Dim strPath As String   Dim strRegExe  As String      'システムディレクトリを得る   lngRet = GetSystemDirectory(strBuff, Len(strBuff))   strPath = Left(strBuff, InStr(strBuff, vbNullChar) - 1)      '登録の時   strRegExe = strPath & "\RegSvr32.exe " & "DLLファイルパス"   '解除の時   strRegExe = strPath & "\RegSvr32.exe /u " & "DLLファイルパス"      '実行   Call Shell(strRegExe) end sub

masa__2002
質問者

お礼

ありがとうございます!!!

関連するQ&A

  • オブジェクト(dll)のレジストリ登録について

    いつもお世話になっております。 dllの使い方について教えてください。 vb5.0で開発を進めているのですが、 dllを呼び出す際に、レジストリ登録を しなければいけないのでしょうか? いくつかのサイトでは、参照設定際すれば、 実行できているようです。。 実行環境では、レジストリ登録しないと 動かない場合があるということでしょうか? ご教授、よろしくお願いします。

  • DLLの登録をVBで行いたい(VB2005)

    いつもお世話になっております。 VB2005で開発しています。 DLLを登録するときに、コマンドプロンプトから regsrv32 ファイル名.dll と実行すると思います。 これをVBから行いたいのですが、何か良い方法はございませんか? 具体的には、VBでレジストリ登録するファイルの一覧を出力して、 それをレジストリ登録したいのです。 VBとバッチを組み合わせれば、実現可能なのですが、 ファイルを2つに分けたくないので、VBだけで処理できないものかと 思いました。 コマンドプロンプトで実行するコマンドをVBから同じように実行できれば良いのですが・・・ もしよろしければ、ご教示ください。 よろしくお願い致します。

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

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

  • VB2008でのDLL作成方法について

    はじめまして、はじめて投稿します。 初心者なので変な質問をしていたらすいません。VB2008を使用しています。 VBで作成したDLLファイルをLabviewで使用したいと思っています。 ただVB6.0でActiveX DLLを作成する方法はわかるのですが、VB2008で作成する方法がわかりません。 クラスライブラリでプログラムを作成し、DLLにすることはできるのです・ しかしレジストリに登録しようと思い「regsvr32 ファイルのパス**.dll」と入力したところ「**.dllは読み込まれましたが、DllRegisterServerエントリポイントが見つかりませんでした」と出ます。 調べてもVB2008でのActiveX DLL作成方法が見つからなくて困っています!!! わかるかた、よろしくお願いいたします。

  • レジストリ登録なしにDLLからオブジェクト生成

    下記URLにあるような、 レジストリ登録なしにDLLからオブジェクト生成できるDLLの作成を模索しております。 http://na-s.jp/NOM/NOM_1.1.2.0_Readme.html 使用方法としてはAccessなどのVBAが自作DLLを呼び出すというものなのですが 自作DLLを作るたびにRegAsmを管理者権限で稼働台数分実行せねばならず しかも自作DLL作成者には管理者権限は与えられていないため、 非常に不便なことになると予想しています。 そこで上記URLにあるようなDLLを1度RegAsmしておくだけで、後に続く自作DLLは そのDLLを介して実行できるものを作りたいと考えています。 いろいろ調べたのですが、調べ方が悪いのか具体例がヒットせず ここで質問したしだいです。 1.希望開発環境であるVS2010以降 C#で作成は可能か (C#以外でないと作成できないのであれば何で作成できるか) 2.プログラム具体例 以上、何卒知恵をお貸しください。 よろしくお願いいたします。

  • VB6で作成したDLLのコンポーネント登録について

    VB6(SP6)+ActiveReports2.0jでSQLserver2005からデータを読み込んで印刷するDLLを作成しました。 このDLLをASP(VBS)を使ってWeb画面から呼び出しています。 その際、DLLはコンポーネントサービスに登録して使用しているのですが、一度コンポーネントサービスから削除して、VBのセットアップ(ディストリビューションウィザード)でセットアップしてもDLLは正常に呼び出されます。 最初のコンポーネントサービスへの登録は必要なのでしょうか? ※あまり深く理解せずシステムを引き継いだものですから、別の環境にインストールする際、上司からの問合せで返答に困っています。 Web上でいろいろ検索はしてみたのですが、仕組みが古い?せいか見つけることができませんでした。 よろしくお願いいたします。 こういう場での質問はあまり経験がありませんので、質問内容で不備等ありましたらご指摘ください。

  • VBから参照できないCのDLLを使用する方法

    Cで作成されたDLLがあるのですが、VBから参照設定しても「指定されたファイルへの参照は登録できません。」と怒られます。 そのようなDLLをどうしてもVBから使用したい場合はどうすれば良いでしょうか? 直接は無理だとしても、間に何かをかましてできると思うのですが、良い方法があれば教えてください。 ちなみに VB6 です。 よろしくお願いします。

  • dllが無いってでるんですが..

    ASPのVBスクリプトから-->VBで作成したdll-->MFCのdllという風にCALLされています。 MFCのdllがNotFoundでエラーになってしまいます。 もちろんdllファイルはあるしPATHも張ってあります。 なにかヒントになることでもいいので 教えてくださーい!

  • VBのBooleanはCではどんな方でしょうか? DLL

    元々、VB6のソースをCに書き直している最中ですが、 VBでintegerは Cではshortでよいのですが、VBでBooleanはCではどのように記述したらよいのでしょうか? 確かCは真が-1で偽が0だったと思いますが、それならば shortで定義して・・・ でうまくいくのでしょうか? VBから呼び出すCの関数のDLLを書いた事のある方、教えていただけますか? また、今の時代、DLLは古いでしょうか? だいぶ前のソースをいじくっております。

  • DLL VB Wheel ホイール

    VB6で、アクティブでない(フォーカスのない)コントロールの上に マウスポインタを持ってきて、ホイールが効くようにしようとしてます。 ネットで検索したところ、NYWheelなるものが以下のサイトに、 フリーで、しかもソース付でありました。 http://park1.wakwak.com/~y-nagano/Programs/nywheel/ どうやら、そのサイトにあるDLLをVB6で参照し使用すれば、 目的の事が出来るのではないかと思い、ソースを読もうとしたところ、 VC++の様で、僕には理解できませんでした。 (一応、VCで作ったDLLをVBで読むようにする事が書いてあるサイト http://www.h4.dion.ne.jp/~fht/htmkdll/ を見つけ、試してみましたがお手上げでした。) そもそも、そのDLLがVBで使えるのかどうかもわかりません。 ソースを修正したら、VBでも使える様になるのでしょうか? 納期も迫っているので、回答しようにも分からないので困ってます。 環境はWindowsXP(SP2)+VisualStadio6(SP5)です。