الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال : هل من الممكن إستعمال أوامر الدوس في دالفي

بدأه neo_protect في 20 يونيو 2009 · 4 رد · 914 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

هل من الممكن إستعمال أوامر الدوس في دالفي دون إستعمال ملف دفعي أي داخل الكود سورس لدالفي

مثلا

begin

dos

@echo off

del F:\autorun.*

end;

#2

لا افهم كلمة ملف دفعى

ضيف فى uses : shellapi

var
X:String;
begin
  X:= Format('/k %s', ['del F:\autorun.*']);
  ShellExecute(Handle, 'open', PChar('command.com'), Pchar(X), nil, sw_show);

جرب وبالتوفيق

Comming Soon

#3

السلام عليكم...

سبقني الأخ Swift بينما كنت أجهز الرد:

  1.  
  2. ShellExecute(0, 'open', 'Command.com', '/C del F:autorun.*', nil, SW_NORMAL);
  3.  

و للتوضيح فقط فإن الملف Command.com هو الملف التنفيذي المحتوي على الأوامر الداخلية للنظام DOS و هو يدعم بارامترين اختياريين هما K/ الذي يبقي نافذة DOS مفتوحة بعد تنفيذ الأمر، و C/ الذي يغلق نافذة DOS بعد تنفيذ الأمر.

أما الملفات الدفعية (Batch Files) فهي ملفات نصية تحتوي على واحد أو أكثر من أوامر DOS. و امتداد هذه الملفات هو bat.

نرجو الاستفادة و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#4

اظافة الى ماقاله اخواني najy_zl و Swift هناك ملاحظة و خاصة عند التعامل مع ال ShellExecute فانت لايمكنك توقع الاخطاء التي يمكن ان تحدث في جهاز الزبون و خاصة انك تتعامل مع ملافات النظام .

ولهذا يمكنك الاستنجاد بال System Errors Throwing .

اذا يمكن استعمال ذلك على النحو التالي :

var
Errorcode: integer; // ---> System Error Code 
begin 
Errorcode :=ShellExecute(0, 'open', 'Command.com', '/C del F:\autorun.*', nil, SW_NORMAL);
case Errorcode of
2:showmessage('file not found');
3:showmessage('path not found');
5:showmessage('access denied');
8:showmessage('not enough memory');
32:showmessage('dynamic-link library not found');
26:showmessage('sharing violation');
27:showmessage('filename association incomplete or invalid');
28:showmessage('DDE request timed out');
29:showmessage('DDE transaction failed');
30:showmessage('DDE busy');
31:showmessage('no application associated with the given filename extension');
end;
end;

ويمكنك استعمال ال Error Formating باستعمال رقم الخطاء مباشرة .

و الله الموفق .

ملاحظة مهمة اخي الكريم neo_protect :

اذا كنت بصدد برمجة تطبيق يحذف ملفات من مثل ال Autorun files ...... فانصحك بعدم استعمال هذه الطريقة لانه يمكنك حذف ملفات لايجب عليك حذفها الا باستعمال ال System Queue operations و الا سوف يحدث مايسمى بال System Crash .... اذا احذر .

و الله المستعان

تم تعديل هذه المشاركة بواسطة mohfa في 21 يونيو 2009 في 12:59

عزيزي :

لاتنسى ان تصلي على حبيبنا و شفيعنا يوم لا ينفع مال ولا بنون .

فاللهمّ صّل وسّلم على سيدي و شفيعي وحبيبي محمد عليك الف صلاة وازكى تسليم

*****

2_header.png

#5

<div align="right">السلام عليكــم ورحمـة الله وبركاتــه

شكرا للجميع على العبور

تم تعديل هذه المشاركة بواسطة neo_protect في 21 يونيو 2009 في 19:30

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…