03-10-12, 09:56 AM
كاتب الموضوع : abdulla0991
السلام عليكم ...
في هذا الدرس سنتعلم كيف نستخدم موجه الأومر Command لتنفيذ عملية تهيئة للفلاشه.
طبعاً هذا الدرس يتناول تهيئة فلاشة ولكن يمكن تطبيقه أيضاً على اي نوع من أنواع الأقراص القابلة للكتابة.
لنبدأ فوراً ,, وندخل في الكود:
طبعاً ,, في البداية يجب ان نستورد المكتبة التالية:
ثم نعرف المتغير التالي لتشغيل موجه الأوامر مع تنفيذ الأمر الخاص بالتهيئة:
من أجل كتابة أمر التهيئة نستخدم متحول من الفئة StringBuilder:
مثال لتهيئة السواقة c بنظام الملفات Fat32 ومع وضع اسم السواقة myUSB ونوع التهيئة سريعة:
[SIZE=4]لنبدأ في كتابة أمر التهيئة - الأمر التالي يفترض انا لدينا combobox يحتوي على جميع الفلاشات المتصلة بالجهاز:[/SIZE]
طبعاً نحن نكتب اسم الفلاشة بالشكل التالي: :C اي محرف الفلاشة ثم نقطتين ولذلك قمتنا باقتطاع اول محرفين فقط من combobox.
الأن نحدد نوع نظام الملفات وأشهر الأنواع هي NTFS و Fat32:
أيضاً نقوم بجلب نوع نظام الملفات من ComboBox ..
الأن نقوم بإضافة اسم الفلاشة:
أظن انها واضحة .. في حال لم يكتب المستخدم اسم الفلاشة فلن يتم تمرير هذه القيمة وستأخذ الفلاشة الاسم الافتراضي.السلام عليكم ...
في هذا الدرس سنتعلم كيف نستخدم موجه الأومر Command لتنفيذ عملية تهيئة للفلاشه.
طبعاً هذا الدرس يتناول تهيئة فلاشة ولكن يمكن تطبيقه أيضاً على اي نوع من أنواع الأقراص القابلة للكتابة.
لنبدأ فوراً ,, وندخل في الكود:
طبعاً ,, في البداية يجب ان نستورد المكتبة التالية:
كود :
[color=#000000][COLOR=#0000bb]Imports System[/color][color=#007700].[/color][COLOR=#0000bb]Diagnostics
[/COLOR][/COLOR]
ثم نعرف المتغير التالي لتشغيل موجه الأوامر مع تنفيذ الأمر الخاص بالتهيئة:
كود :
[color=#000000][COLOR=#0000bb]Dim procInfo [/color][color=#007700]As [/color][color=#0000bb]ProcessStartInfo [/color][color=#007700]= New [/color][color=#0000bb]ProcessStartInfo[/color][color=#007700]([/color][color=#dd0000]"cmd"[/color][COLOR=#007700])
[/COLOR][/COLOR]
من أجل كتابة أمر التهيئة نستخدم متحول من الفئة StringBuilder:
كود :
[color=#000000][COLOR=#0000bb]Dim cmd [/color][color=#007700]As New [/color][color=#0000bb]System[/color][color=#007700].[/color][color=#0000bb]Text[/color][color=#007700].[/color][color=#0000bb]StringBuilder[/color][COLOR=#007700]()
[/COLOR][/COLOR]
مثال لتهيئة السواقة c بنظام الملفات Fat32 ومع وضع اسم السواقة myUSB ونوع التهيئة سريعة:
كود :
Format c: /FS:Fat32 /v:myUSB /q
[SIZE=4]لنبدأ في كتابة أمر التهيئة - الأمر التالي يفترض انا لدينا combobox يحتوي على جميع الفلاشات المتصلة بالجهاز:[/SIZE]
كود :
[color=#000000][COLOR=#0000bb]cmd[/color][color=#007700].[/color][color=#0000bb]Append[/color][color=#007700]([/color][color=#dd0000]"Format " [/color][color=#007700]& [/color][color=#0000bb]cboDrive[/color][color=#007700].[/color][color=#0000bb]SelectedItem[/color][color=#007700].[/color][color=#0000bb]ToString[/color][color=#007700]().[/color][color=#0000bb]Substring[/color][color=#007700]([/color][color=#0000bb]0[/color][color=#007700], [/color][color=#0000bb]2[/color][COLOR=#007700]))
[/COLOR][/COLOR]
طبعاً نحن نكتب اسم الفلاشة بالشكل التالي: :C اي محرف الفلاشة ثم نقطتين ولذلك قمتنا باقتطاع اول محرفين فقط من combobox.
الأن نحدد نوع نظام الملفات وأشهر الأنواع هي NTFS و Fat32:
كود :
[color=#000000][COLOR=#0000bb]cmd[/color][color=#007700].[/color][color=#0000bb]Append[/color][color=#007700]([/color][color=#dd0000]" /FS:" [/color][color=#007700]+ [/color][color=#0000bb]cboFileSystem[/color][color=#007700].[/color][color=#0000bb]SelectedItem[/color][color=#007700].[/color][color=#0000bb]ToString[/color][COLOR=#007700]())
[/COLOR][/COLOR]
أيضاً نقوم بجلب نوع نظام الملفات من ComboBox ..
الأن نقوم بإضافة اسم الفلاشة:
كود :
[color=#000000][COLOR=#007700]If ([/color][color=#0000bb]txtName[/color][color=#007700].[/color][color=#0000bb]Text[/color][color=#007700].[/color][color=#0000bb]Trim[/color][color=#007700]().[/color][color=#0000bb]Length [/color][color=#007700]> [/color][color=#0000bb]0[/color][color=#007700]) [/color][COLOR=#0000bb]Then
cmd[/COLOR][color=#007700].[/color][color=#0000bb]Append[/color][color=#007700]([/color][color=#dd0000]" /v:" [/color][color=#007700]& [/color][color=#0000bb]txtName[/color][color=#007700].[/color][color=#0000bb]Text[/color][color=#007700].[/color][color=#0000bb]Trim[/color][COLOR=#007700])
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
[/COLOR][/COLOR]
وأخيراً نحدد نوع التهيئة ,, عادية ام سريعة:
كود :
[color=#000000][COLOR=#007700]If [/color][color=#0000bb]chkQuick[/color][color=#007700].[/color][COLOR=#0000bb]Checked Then
cmd[/COLOR][color=#007700].[/color][color=#0000bb]Append[/color][color=#007700]([/color][color=#dd0000]" /q"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
[/COLOR][/COLOR]
في حال اختار المستخدم تهيئة عادية فلن يتم تمرير هذه القيمة لأنها هي الافتراضية ,, ولكن رجاءاً أخوتي لا تجربوا التهيئة العادية لأنها ممكن تستغرق نصف إذا كانت الفلاشة سعتها كبيرة.
بعد الانتهاء من كتابة الأمر ,, سنقوم بتمريره لموجه الأوامر عبر الخطوات التالية (من اجل الشرح ارجع إلى الدرس الأول):
كود :
[COLOR=#000000][COLOR=#dd0000]'تمرير الأمر إلى موجه الأوامر
procInfo.Arguments = "/c " + cmd.ToString()
'[/COLOR][COLOR=#0000bb]من أجل ان تعود العملية بنتيجة التنفيذ
procInfo[/COLOR][color=#007700].[/color][color=#0000bb]RedirectStandardOutput [/color][color=#007700]= [/color][COLOR=#0000bb]True
procInfo[/COLOR][color=#007700].[/color][color=#0000bb]UseShellExecute [/color][color=#007700]= [/color][COLOR=#0000bb]False
من أجل عرض او اخفاء نافذة موجه الأوامر
procInfo[/COLOR][color=#007700].[/color][color=#0000bb]CreateNoWindow [/color][color=#007700]= [/color][COLOR=#0000bb]True
[/COLOR][/COLOR]
أخيراً نعرف عملية جديدة Process لتشغيل موجه الأومر ,, مع تمرير أمر التهيئة لتنفيذه:
كود :
[color=#000000][COLOR=#0000bb]Dim proc [/color][color=#007700]As [/color][color=#0000bb]Process [/color][color=#007700]= New [/color][color=#0000bb]Process[/color][COLOR=#007700]()
[/COLOR][COLOR=#0000bb]تحديد معلومات تنفيذ العملية
proc[/COLOR][color=#007700].[/color][color=#0000bb]StartInfo [/color][color=#007700]= [/color][COLOR=#0000bb]procInfo
proc[/COLOR][color=#007700].[/color][color=#0000bb]Start[/color][COLOR=#007700]()
[/COLOR][/COLOR]
الخطوة الأخيرة ,, قراءة ناتج العملية لكي نعرف هل نجحت عملية التهيئة ام فشلت:
كود :
[COLOR=#000000][COLOR=#0000bb] قراءة النتيجة
Dim result [/COLOR][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#0000bb]proc[/color][color=#007700].[/color][color=#0000bb]StandardOutput[/color][color=#007700].[/color][color=#0000bb]ReadToEnd[/color][COLOR=#007700]()
If [/COLOR][color=#0000bb]result[/color][color=#007700].[/color][color=#0000bb]IndexOf[/color][color=#007700]([/color][color=#dd0000]"Format Complete"[/color][color=#007700], [/color][color=#0000bb]StringComparison[/color][color=#007700].[/color][color=#0000bb]OrdinalIgnoreCase[/color][color=#007700]) >= [/color][COLOR=#0000bb]0 Then
MsgBox[/COLOR][color=#007700]([/color][color=#dd0000]"تمت عملية التهيئة بنجاح !"[/color][color=#007700], [/color][color=#0000bb]MsgBoxStyle[/color][color=#007700].[/color][color=#0000bb]Information [/color][color=#007700]+ [/color][color=#0000bb]MsgRighToLeft[/color][COLOR=#007700])
Else
[/COLOR][color=#0000bb]MsgBox[/color][color=#007700]([/color][color=#dd0000]"فشلت عملية التهيئة .. هذه نتيجة العملية:" [/color][color=#007700]& [/color][color=#0000bb]vbCrLf [/color][color=#007700]& [/color][color=#0000bb]result[/color][color=#007700], [/color][color=#0000bb]MsgBoxStyle[/color][color=#007700].[/color][color=#0000bb]Critical [/color][color=#007700]+ [/color][color=#0000bb]MsgRighToLeft[/color][COLOR=#007700])
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If
[/COLOR][/COLOR]
وبس خلاص ,, انتهى هذا الدرس السريع الخفيف ...
تحميل الكود