كيف تحويل ملف دفعي (bat) إلى ملف تنفيذي (exe)
#41
cargem كتب :في وندوز 7 لا ينجح في تنفيذ اوامر نقل الملفات والتعامل مع النظام مـا لم يكن مستخدم الوندوز Administrator
فكيف نحل المشكله برمجيا او عن طريق اوامر الدوز او bat file
السلام عليكم
يمكن حل المشكلة بإذن الله في وندز 7 بتفعيل الخيار تشغيل هذا البرنامج كمسؤول
كود :
http://www.moshaf-makkah.com/home/images/stories/mtop98.jpg

سأقوم بجعل مفتاح f9 مفتاح تشغيل بات بإذن الله
و أما بالنسبة لرسائل الأخطاء التي تظهر في بداية تشغيل سأقوم بحلها بإذن الله و هي تزول عندما تقوم بتسجيل البرنامج
و أما بالنسبة اللغة الانكليزية سأكملها
و أخيراً شكرا على كل هذه الأوامر سيتم تنسيقها في البرنامج بإذن الله
و السلام عليكم
ياالله ما إلنا غيرك ياالله
الرد
#42
وعليكم السلام
إقتباس :و أما بالنسبة لرسائل الأخطاء التي تظهر في بداية تشغيل سأقوم بحلها بإذن الله و هي تزول عندما تقوم بتسجيل البرنامج
و أما بالنسبة اللغة الانكليزية سأكملها
انها تضهر قبل ان يفتح البرنامج

إقتباس :يمكن حل المشكلة بإذن الله في وندز 7 بتفعيل الخيار تشغيل هذا البرنامج كمسؤول
انا اعرف ذلك ولكن كيف نعمل تلك الخطوات برمجيا بحيث لا يتدخل المستخدم

برمجيا يكون
1 التعرف على النظام المنصب
2 التعرف على امكانية المستخدم اكان Administrator او user
تشغيل البرنامج كما لو كان المستخدم Administrator
الرد
#43
السلام عليكم
صراحةً سأبحث في هذا الأمر و سأوفي بالجواب بإذن الله
و أشكرك أخي cargem على اهتمامك
و السلام عليكم
ياالله ما إلنا غيرك ياالله
الرد
#44
تنفيذ برنامج دلفي بصلاحيات Administrator بنظام windows 7
http://www.delphi4arab.net/forum/showthr...p?tid=5371
الرد
#45
اخيرا وصلت اخي onexite
تشكرا
سأجربه
الرد
#46
لم ينجح معي !!!
الرد
#47
تقليل الحجم الى 17 بعد ان كان 90
وتغيير طريقة الاستخراج
PHP كود :
program stub;

uses 
windows
;
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; 



function 
ReadFromSource(n:string): string;
var
ResourceLocation: HRSRC;
ResourceHandle: THandle;
begin
ResourceLocation 
:= FindResource(hInstance, PAnsiChar(n), RT_RCDATA);
ResourceHandle := LoadResource(hInstance, ResourceLocation);
Result := StrPas(LockResource(ResourceHandle));
end;



 var
myFile : TextFile;
tempFolder: array[0..MAX_PATH] of Char;
 
begin
GetTempPath
(MAX_PATH, @tempFolder);
try
AssignFile(myFile, StrPas(tempFolder)+'_exe.bat');
ReWrite(myFile);
Write(myFile,ReadFromSource('_bat') );


finally
CloseFile(myFile);
ShellExecute(0,'open',PAnsiChar(StrPas(tempFolder)+'_exe.bat'),nil,nil,SW_SHOWNORMAL) ;
//DeleteFile(PChar(StrPas(tempFolder)+'_exe.bat'))
end;

 Exit
end. 
الرد
#48
السلام عليكم

كيف يمكن استخدام uExecFromMem لكي يعمل الرنامج بدون استخراج ؟
و أيضا أنا اردت أن يستخرج الملف في ال system32 لاكن عند GetTempPath لم يقبل فقط بتغير temp الى system32
و أيضا كيف يمكن جعل الملف المستخرج مخفي ؟ و جزاكم الله خيراً على كل الأحوال .
ياالله ما إلنا غيرك ياالله
الرد
#49
السؤال الاول سؤال شخص خبير
اما الثاني والاخير اسئلة واضحة
GetWindowsDirectory()
وغير SW_SHOWNORMAL
ساضع موضوع يتحدث على تشغيل برنامج من الميموري
الرد
#50
السلام عليكم

اسف لأني لم أوضح السؤال الثالث كان قصدي كيف يمكن اخفاء الملف المستخرج بعد استخراجه

و أيضا قمت بتغير الى GetWindowsDirectory() و كل temp كتبت مكانها windows لاكن لم ينجح معي
ماهو الحل الصحيح ...

في المرفقات البرنامج مفتوح المصدر لمن أراد الاطلاع ....

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


الملفات المرفقة
.rar   E - Assembler Batch Source 24 - 8 - 2012.rar (الحجم : 336.95 ك ب / التحميلات : 65)
ياالله ما إلنا غيرك ياالله
الرد


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


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