Witam, najpierw krótki wstęp:
<font size="2">Przeczytałem artykuł o zasobach w EXE.
Przeczytałem odpowiedź na FAQ: Jak nie korzystając z komponentu dokleić do pliku program EXE. Tam znalazłem częściowo to o co mi chodziło.
Znalazłem 448 postów o ShellExecute, ale żaden z nich nie pasował.
W googlach też nie ma rozwiązania...</span>
No, to tytułem, żeby :-[ nie mówili, że nie szukałem.
Pytanie brzmi: Jak uruchomić EXE'ca z zasobów.
Ok, w FAQ jest kod:
var
Res : TResourceStream;
begin
Res:=TResourceStream.Create(hInstance,'PROGRAM',RT_RCDATA);
Res.SaveToFile('Program.exe'); // zapisz na dysk
Res.Free;
end;
Ale to wymaga zapisywania pliku na dysku, ergo nie będzie działać gdy mamy bardzo ograniczony dostęp do dysku :-D . Czy istnieje jakaś wersja funkcji ShellExecute typu:
Res:=TResourceStream.Create(hInstance,'PROGRAM',RT_RCDATA);
ShellExecute(0,'open',Res,nil,nil,SW_SHOW);
Pamiętajcie, nie można nic zapisywać na dysku.
Da się w ogóle? Uruchomiony proces musi mieć chyba ścieżkę, nie? Pozdrowienia i z góry dziękuję za odpowiedzi.