単一の .exe のみを配布したいのですが、実行時に埋め込み画像リソースをユーザーのハードディスク ドライブに抽出したいと考えています。
私はできますか?
単一の .exe のみを配布したいのですが、実行時に埋め込み画像リソースをユーザーのハードディスク ドライブに抽出したいと考えています。
私はできますか?
Delphi の TResourceStream を使用します。コンストラクターがリソースを見つけてメモリにロードし、SaveToFile メソッドがディスク書き込みを行います。
これに似たものが機能するはずです:
var
ResStream: TResourceStream;
begin
ResStream := TResourceStream.Create(HInstance, 'YOURRESOURCENAME', RT_RCDATA);
try
ResStream.Position := 0;
ResStream.SaveToFile('C:\YourDir\YourFileName.jpg');
finally
ResStream.Free;
end;
end;
名前の代わりにリソース ID を使用できる場合は、メモリが少し少なくなります。その場合、Create を CreateFromID に置き換え、文字列名ではなく数値 ID を指定します。
を作成しますTResourceStream
。モジュール インスタンス ハンドル (通常SysInit.HInstance
は現在の EXE ファイル、または または から取得したLoadLibrary
ものLoadPackage
)、リソース タイプ (rt_Bitmap
または などrt_RCData
)、およびリソース名または数値 ID が必要です。次に、ストリームのSaveToFile
メソッドを呼び出します。
try
if not Assigned(Bitmap)
then
Bitmap := TBitmap.Create();
Bitmap.LoadFromResourceName(HInstance,SRC);
except
on E:Exception do
ShowMessage(e.Message);
end;
次に、ビットマップをディスクに保存します。
リソース自体を操作する必要がある場合、これも役立つかもしれません。 Delphidabbler / ResourceFiles