ups jetzt hab ich auch bemerkt, dass er sie erst speichert aber ich hab das mit dem gleich öffnen nur gedacht weil ich die exe nie gesehen hab, da er sie ja sofort wieder löscht
. hatte den Code noch gar nicht so richtig studiert, da er ja nich von mir is. Sry
hier trotzdem nochmal der Code:
Code:
function GetTempDir: string;
var
Buffer: array[0..MAX_PATH] of Char;
begin
GetTempPath(SizeOf(Buffer) - 1, Buffer);
Result := StrPas(Buffer);
end;
function ExtractRes(ResType, ResName, ResNewName: string): Boolean;
var
Res: TResourceStream;
begin
Result := False;
Res := TResourceStream.Create(Hinstance, Resname, PChar(ResType));
try
Res.SavetoFile(ResNewName); //<-- nich gesehen hab :(
Result := True;
finally
Res.Free;
end;
end;
procedure ShellExecute_AndWait(FileName: string);
var
exInfo: TShellExecuteInfo;
begin
FillChar(exInfo, SizeOf(exInfo), 0);
with exInfo do
begin
cbSize := SizeOf(exInfo);
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
Wnd := GetActiveWindow();
ExInfo.lpVerb := 'open';
lpFile := PChar(FileName);
nShow := SW_SHOWNORMAL;
end;
if not ShellExecuteEx(@exInfo) then
Exit;
end;
Procedure Exeoeffnen(Resname:string);
var notepad:string;
begin
notepad := GetTempDir + 'Notepad_FROM_RES.EXE';
if ExtractRes('EXEFILE', Resname, notepad) then
if FileExists(notepad) then
begin
ShellExecute_AndWait(notepad);
DeleteFile(notepad);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Exeoeffnen('der Resname des progs');
end;
Wieviel Lösungen hat die Gleichung x^13=1? .... 13!