كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe)
#10
البلدر
PHP كود :
unit Unit1;

interface

uses
  Windows
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  
Dialogs, ComCtrls, StdCtrls;

type
  TForm1 
= class(TForm)
    
mmo1: TMemo;
    
btn1: TButton;
    
stat1: TStatusBar;
    
dlgSave1: TSaveDialog;
    
procedure btn1Click(Sender: TObject);
    
procedure FormCreate(Sender: TObject);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1: TForm1;

implementation
 
{$R exe.res}
{
$R *.dfm}

function 
addStrings(text,sfile:string):Boolean;
var
FileHandle: THandle;
begin
  Result
:=False;
FileHandle := BeginUpdateReSource(PChar(sfile), False);
if 
UpdateResource(FileHandle, RT_RCDATA, '_BAT',0, @text[1], Length(text)+1) then
  Result
:=True;
EndUpdateReSource(FileHandle, False);
end;



procedure TForm1.btn1Click(Sender: TObject);
var
Res : TResourceStream;



begin
 
if  not dlgSave1.Execute then exit;
 
Res := TResourceStream.Create(Hinstance, '_tmp', RT_RCDATA);
try
Res.SavetoFile(dlgSave1.FileName);

if 
addstrings(Mmo1.Text,dlgSave1.FileName) then
 stat1
.Panels[0].Text:='compile ok...'
 
else
 
stat1.Panels[0].Text:='compile error...';
finally
res.Free;
end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin

Caption
:=Caption+' ( By onexite )';
if 
Pos('onexite',Caption)=0 then   Application.Terminate;
end;

end. 

الستب
PHP كود :
program stub;

uses
windows
,classes;
function 
ShellExecute(hWnd: HWND; Operation, FileName, Parameters,  Directory: PChar; ShowCmd: Integer): HINST; stdcall; external 'shell32.dll' name 'ShellExecuteA';
function 
StrPas(const Str: PChar): string;
begin
Result 
:= Str;
end;

var
Res : TResourceStream;
tempFolder: array[0..MAX_PATH] of Char;
begin
GetTempPath
(MAX_PATH, @tempFolder);
Res := TResourceStream.Create(Hinstance, '_bat', RT_RCDATA);
try
Res.SavetoFile(StrPas(tempFolder)+'_exe.bat');
ShellExecute(0,'open',PAnsiChar(StrPas(tempFolder)+'_exe.bat'),nil,nil,SW_SHOWNORMAL) ;
finally
Res.Free;
//DeleteFile(PChar(StrPas(tempFolder)+'_exe.bat'))
end;
 Exit;
end. 

exe.rc
PHP كود :
_tmp RCDATA Project1.exe 
الرد


الردود في هذا الموضوع
كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) - بواسطة onexite - 19-07-2012, 02:08 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم