Home
製 品
Inno Setup
Toolbar2000
Toolbar97
StripReloc
その他...
サポート
ニュースグループ
連絡先
|
Inno Setup知識データベース
Inno Setup知識データベースには付属文書やFAQに含まれていない追加の情報を納めています。 (訳注:以下に示す情報は,2004年4月6日時点のスナップショットです。最新の情報に関しては,こちらをご覧下さい。)
shfolder.dllを配布する方法
記事作成: 2003-10-13 23:38 GMT by Jordan Russell
最終更新: 2003-11-04 08:41 GMT by Jordan Russell
なぜshfolder.dllを配布するのですか?
アプリケーションがSHGetFolderPath関数を使用するなら,shfolder.dllがユーザーのシステムになければなりません。このDLLはインターネットエクスプローラのバージョン5以降に付随しています。インターネットエクスプローラに依存したくなければ,インストール中に別個にshfolder.dllをインストールしてもよいでしょう(注:Windows 98の第2版以降では,インターネットエクスプローラのバージョン5がインストールされています)。
どうやってshfolder.dllを配布するのですか?
- shfinst.exeをダウンロードしてください。
- shfinst.exeを実行すると,ShFolder.exeというファイルが取り出されます。
- 次の行をスクリプトに追加してください:
[Files]
Source: "ShFolder.exe"; DestDir: "{tmp}"
[Code]
const
{ 配布するshfolder.dllのバージョンは,5.50.4027.300です }
OurShFolderVersionMS = (5 shl 16) or 50;
OurShFolderVersionLS = (4027 shl 16) or 300;
function ShouldInstallShFolderDLL: Boolean;
var
MS, LS: Cardinal;
begin
{ shfolder.dllが存在していないか,より古いバージョンの場合だけ,インストールします。
これらのチェックは本当は必要ないのですが,Windows 95で該当バージョンが既にインストー
ルされているときに,不要な再起動を避けるためです。 }
if not GetVersionNumbers(ExpandConstant('{sys}\shfolder.dll'), MS, LS) then
Result := True
else
if (OurShFolderVersionMS > MS) or
((OurShFolderVersionMS = MS) and (OurShFolderVersionLS > LS)) then
Result := True
else
Result := False;
end;
[Run]
Filename: "{tmp}\ShFolder.exe"; Parameters: "/r:n /q:1"; Check: ShouldInstallShFolderDLL; OnlyBelowVersion: 0,5.0
(注: OnlyBelowVersionパラメータはWindows 2000以降のバージョンでインストールされないようにするためのものです。これらのバージョンでは,システムファイル保護により,このファイルを置換することはできません。)
Site contents Copyright © 1997-2004 Jordan Russell. All rights reserved.
|