Wie du das nachher mit "dem Knopf" verbindest, mußt du schon selber rausbekommen. Aber zB PutBinToRes aus meinem letzten Hooktut enthält alles nötige. So zB die RC-Datei:
Code:
[color=red]HOOKDLL[/color] [color=green]RCDATA[/color] DISCARDABLE [color=blue]"..\\KbdHook.dll"[/color]
Wobei die Syntax eindeutig ersichtlich ist ...
Rot: Name (kann auch eine Zahl kleiner $FFFF und größer 0 sein)
Grün: Typ
Blau: Pfad zur einzubindenden Datei
Und dann hätten wir noch die Funktion (dies ist die neueste Version von PutBinResTo, auch wenn ich sie umbenannt hatte
).
Delphi-Quellcode:
function ExtractResTo(Instance: LongWord; BinResName, NewPath, ResType: PChar): Boolean;
(*******************************************************************************
Function: ExtractResTo
Returns: Boolean (true=success)
Version: Function version 3.0[mod]
Parameters modified, SEH stripped.
*******************************************************************************)
var
ResSize,
HG,
HI,
SizeWritten,
hFileWrite: LongWord;
begin
result := false;
HI := FindResource(Instance, BinResname, ResType);
if HI <> 0 then
begin
HG := LoadResource(Instance, HI);
if HG <> 0 then
begin
ResSize := SizeOfResource(Instance, HI);
hFileWrite := CreateFile(NewPath, GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, CREATE_ALWAYS,
FILE_ATTRIBUTE_ARCHIVE, 0);
if hFileWrite <> INVALID_HANDLE_VALUE then
begin
result := (WriteFile(hFileWrite, LockResource(HG)^, ResSize,
SizeWritten, nil) and (SizeWritten = ResSize));
CloseHandle(hFileWrite);
end;
end;
end;
end;
Wie man sieht, kann man als ersten Parameter die Instanz übergeben (kann also die Ressource auch aus einer externen Datei laden), danach den Namen der Ressource, den Zielpfad und zuguterletzt den Ressourcentyp.
Viel Spaß damit