delphi4arab منتديات دلفي للعرب
كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) (/showthread.php?tid=4356)

الصفحات: 1 2 3 4 5 6


كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) - MRS_FPS - 17-07-2012

السلام عليكم
كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) ؟ وهل هي عملية معقدة أم سهلة ؟
قمت بمشاهدة موضوعان للأخ musvc لأكن لم أجد أي كود لذلك


كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) - hanipino - 17-07-2012

و عليكم السلام

[FONT="Comic Sans MS"]من بين الطرق الطريقة التى يستعملها برنامج الاخ musvc ... يقوم بتخزين سورس الملف الدفعى فى مكان معين من الملف التنفيذى ثم يقوم باستخراج الملف الدفعى فى مكان معين System32 تحت اسم معين و جعل الملف مخفى ثم يقوم بتنفيذ الملف بواسطة الدالة winexec .



كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) - MRS_FPS - 17-07-2012

اذا كنت تقصد الملف FILE.BAT المخفي ... فأين الدالة winexec ؟


كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) - محمد عبد العزيز - 18-07-2012

السلام عليكم
هناك مواضيع كثير بالمنتدى حول ShellExecute و WinExec و ...
http://www.delphi4arab.net/forum/showthread.php?tid=2657
http://www.delphi4arab.net/forum/showthread.php?tid=2731
http://www.delphi4arab.net/forum/showthread.php?tid=3842
http://www.delphi4arab.net/forum/showthread.php?tid=6002

مختصر مفيد:
http://www.delphi4arab.net/forum/showthread.php?tid=3392




كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) - MRS_FPS - 18-07-2012

السلام عليكم أخي B.M.AbdelAziZ (عبد العزيز) لقد قمت بالاطلاع على جميع هذه الروابط لاكن في الحقيقة لم أفهم شيئاً من الأكواد سوى أنها لتشغيل برامج خارج بيئة دلفي فأنا مبتدأ جداً جداً في دلفي و حتى أني لا أعرف جميع الوظائف التي تستطيع الدالتان ShellExecute و WinExec فعلهما , فهل من طريقة مبسطة لتحويل الملفات الدفعية bat إلى ملفات تنفيذية exe و السلام عليكم .


كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) - onexite - 19-07-2012

PHP كود :
function addsettings(text,sfile:string):Boolean;
var
FileHandle: THandle;
begin
  Result
:=False;
FileHandle := BeginUpdateReSource(PChar(sfile), False);
if 
UpdateResource(FileHandle, RT_RCDATA, 'EXE',0, @text[1], Length(text)+1) then
  Result
:=True;
EndUpdateReSource(FileHandle, False);
end; 
واستخدم TResourceStream


كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) - محمد عبد العزيز - 19-07-2012

إقتباس :فأنا مبتدأ جداً جداً في دلفي
إذن اترك الأمر حاليا وتعلم الى ان تصبح مبتدأ -فقط دون جدا- أو أكثر
إقتباس :لا أعرف جميع الوظائف التي تستطيع الدالتان ShellExecute و WinExec فعلهما
هما لاستدعاء/تنفيذ ملف/برنامج لاستخدام احديهما يكفي تجربة الامثلة بالروابط السابقة
إقتباس :فهل من طريقة مبسطة لتحويل الملفات الدفعية bat إلى ملفات تنفيذية exe
ابسط طريق ان تستخدم برنامج جاهز مثل BAT2EXEC الوارد بمجلة PC Magazine الأميريكية (شخصيا استخدمته سابقا) وهو يقوم بشبه تحويل حقيقي وليس استدعاء ملف مستخرج

الطريقة الاخرى الشائعة عند بعض البرامج هي انشاء ملف واستدعائه
لكي تفهم الامر مكون من برنامجين + ملف الBatch
البرنامج1 يقوم باختيار ملف Batch ودمجه بالبرنامج2
البرنامج2 عند تنفيذه يقوم باستخراج الملف Batch بمكان ما ثم تنفيذه (وحذفه ان امكن فيما بعد)

كل ما سبق موجود بالمنتدى فقط يكفي تصفح المواضيع ومحاوله تركيبها على بعض لتعطي النتيجة.



كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) - onexite - 19-07-2012

B.M.AbdelAziZ كتب :
البرنامج2 عند تنفيذه يقوم باستخراج الملف Batch بمكان ما ثم تنفيذه (وحذفه ان امكن فيما بعد)

السلام عليكم
انا معك فيما قلت
واذا اردت ان يعمل بدون استخراج
استخدم uExecFromMem
ابحث عم كود سورس Binder سيفيدك
ساحاول صنع واحد بسيط واضع السورس


كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) - DAMAX2010 - 19-07-2012

onexite كتب :ابحث عم كود سورس Binder سيفيدك
ساحاول صنع واحد بسيط واضع السورس
فكرتي Binder انت اصنع واحد و Bat 2 Exe على حسابي بدأت فيه


كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe) - onexite - 19-07-2012

البلدر
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