Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
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:WindowsNotepad.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:
varForm1: 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 functionExtractRes(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 procedureShellExecute_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 procedureTForm1.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
;