Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Добавить EXE файл в своё приложение и запустить его

1. Start notepad and create a .rc-file that looks like this:
Starte Notepad und erstelle ein .rc-file, das etwa so aussieht:


 TESTFILE EXEFILE C:\Windows\Notepad.exe
 

(Make sure that the Path to your Exe-File is correct!)
(Stelle sicher, dass der Pfad zur Exe-Datei korrekt ist!)

2. Save it as myres.rc
Speichere es als myres.rc

3. Compile the file with brcc32.exe
(in your Delphi-bin directory) to get myres.res
Kompiliere die Datei mit brcc32.exe
(Im Delphi-bin Verzeichnis) um die Datei myres.res zu erhalten.

4. Copy myres.res to your Project directory.
Kopiere myres.res in das entsprechende Projekt-Verzeichnis.

5. In your unit write the following:
In der unit, schreibe etwa das folgende:


 var
   Form1: TForm1;
   NOTEPAD_FILE: string;
 
 implementation
 
 {$R *.DFM}
 {$R MYRES.RES}
 
 function GetTempDir: string;
 var
   Buffer: array[0..MAX_PATH] of Char;
 begin
   GetTempPath(SizeOf(Buffer) - 1, Buffer);
   Result := StrPas(Buffer);
 end;
 
 // Extract the Resource 
 function ExtractRes(ResType, ResName, ResNewName: string): Boolean;
 var
   Res: TResourceStream;
 begin
   Result := False;
   Res := TResourceStream.Create(Hinstance, Resname, PChar(ResType));
   try
     Res.SavetoFile(ResNewName);
     Result := True;
   finally
     Res.Free;
   end;
 end;
 
 // Execute the file 
 procedure ShellExecute_AndWait(FileName: string);
 var
   exInfo: TShellExecuteInfo;
   Ph: DWORD;
 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 ShellExecuteEx(@exInfo) then
   begin
     Ph := exInfo.HProcess;
   end
   else
   begin
     ShowMessage(SysErrorMessage(GetLastError));
     Exit;
   end;
   while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do
     Application.ProcessMessages;
   CloseHandle(Ph);
 end;
 
 // To Test it 
 procedure TForm1.Button1Click(Sender: TObject);
 begin
   if ExtractRes('EXEFILE', 'TESTFILE', NOTEPAD_FILE) then
     if FileExists(NOTEPAD_FILE) then
     begin
       ShellExecute_AndWait(NOTEPAD_FILE);
       ShowMessage('Notepad finished!');
       DeleteFile(NOTEPAD_FILE);
     end;
 end;
 
 procedure TForm1.FormCreate(Sender: TObject);
 begin
   NOTEPAD_FILE := GetTempDir + 'Notepad_FROM_RES.EXE';
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS