- 締切済み
システムディレクトリ以外の場所に*.dllをコピーしてVBから実行したい
現在,unlha32.dllを使用した,解凍プログラムを作成中です。 unlha32.dllが存在しないパソコンには,システムディレクトリにdllをコピーして実行するわけですが,WinNT,Win2000などでは,管理者以外は,システムディレクトリへの書込みが出来ません。 そこで,システムディレクトリ以外のディレクトリにコピーして,それをVBから呼び出す,というかたちを考えているのですが,どのようにしたら良いのか分かりません。よろしければ,教えて頂けないでしょうか? ただし,unlha32.dllを使用していることを,利用者に知られたく無いので, 事前にインストールしてもらうという手は使えません。 どうか,よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
> 1:マニュアル等での UNLHA(32).DLL の著作権表示 > > LHA.EXE の条件に, > ただし,unlha32.dllを使用していることを,利用者に知られたく無いので, > 事前にインストールしてもらうという手は使えません。 それ、NGです。unlha32.dllの二次利用条件に下記のように記載されてますので。 > > | 6. 雑誌・商品などに添付して再配布する場合には、少なくとも1か所に > | 著作権表示を印刷(タイプ)すること。 > > という条項があり,原作者の権利を守るためにも,移植物である UNLHA.DLL, > UNLHA32.DLL についても同様の表示が必要であると判断し, 同様の著作権表 > 示をお願いしています。 著作権という概念はご存知でしょうか? # このページをUNLHA32.DLLの作者に連絡してもよろしいでしょうか?(笑 # (^^;
- Methyln
- ベストアンサー率29% (242/823)
・同一ディレクトリにDLLをおく。 ・pathの通った場所にDLLをおく。 ・DLLのある場所へのpathを追加する。 と、いうか管理者以外アクセスできないとこにおかなきゃならないなら 管理者にインストールさせるのが普通。 ユーザ権限でunlha32.dll(lhaの展開用だよね?)なんかをインストール できるアプリなら企業のシステム管理部門から言わせれば 「極悪アプリ」 と呼ばれたりしますけど...
補足
どうも,回答ありがとうございます。 普通にシステムディレクトリに入っているDLLファイルなら Private Declare Function Unlha Lib "UNLHA32.DLL" (ByVal Callhwnd As Long, ByVal LHACommand As String, ByVal RetBuff As String, ByVal RetBuffSize As Long) As Long と宣言した後に Dim Ret As String * 255 Dim SendStr As String SendStr = "e -n " + Chr(34) + App.path + "\" + "mohao.lzh" + Chr(34) + " " + Chr(34) + "D:\My Documents\mohao\" + Chr(34) UnlhaSetCursorMode False UnlhaSetBackGroundMode True Unlha frmPass.hWnd, SendStr, Ret, 255 'UnLHA実行 と記述すれば良いと思うのですが, システムディレクトリ以外の場所にDLLがある場合には,どのような記述をしたら良いのでしょうか? 目的は,unlha32.dllをインストールするのではなく, unlha32.dllを利用して,別の圧縮ファイルを解凍したいのです。 処理の後,unlha32.dllを削除します。
お礼
> # このページをUNLHA32.DLLの作者に連絡してもよろしいでしょうか?(笑 > # (^^; う~ん,そいつはまずいッスね。 フリーの物だったので,そのあたりのことを失念しておりました。 もともとは,インストーラを作成するにあたって, 色々考えているうちに,この方法に至ったのですが, この方法はやめます。 回答してくださり,どうも有り難うございました。