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

تنفيذ أوامر DOS من داخل ال #C

مغلق
بدأه TarekNajem04 في 14 ديسمبر 2005 · 8 رد · 1,521 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

14_12_05_06_21_54_1134570114Result.jpg

في موضوعنا هذا سوف نتحدث عن خاصييتين من خصائص Process

هما StandardInput و StandardOutput

StandardInput : تخولنا الكتابه إلى التطبيق الذي قمنا بتشغيله.

StandardOutput : تخولنا قراءة جميع البيانات التي يتم كتابتها من قبل التطبيق الذي قمنا بتشغيله.

في مثالنا هذا سوف نقوم بكتابة أوامر إلى CMD ونقوم بقراءة النتائج التي سوف يظهرها.

1- نقوم بتعريف كتلة ProcessStartInfo الخاصة بالتطبيق المراد تشغيله.

            info.FileName = "CMD.EXE";
            info.UseShellExecute = false;
            info.RedirectStandardInput = true; // ليتم تحويل الإدخال
            info.RedirectStandardOutput = true; // ليتم تحويل الإخراج
            info.WindowStyle = ProcessWindowStyle.Hidden;
            info.CreateNoWindow = true; // خاص ببرامج الكونسول ليتم تشغيلها بدون نافذة

            Process CMD = new Process();
            CMD.StartInfo = info;
            CMD.Start();

            StreamWriter InputStream = CMD.StandardInput;
            StreamReader OutputStream = CMD.StandardOutput;

            // نقوم بتفسيم النص المكتوب لمعرفة جميع الأوامر المكتوبة في النص
            string[] Commands = CommandTextBox.Text.Split(new char[] { ';' });

            foreach (string command in Commands)
            {
                InputStream.WriteLine(command);
            }
            // نضيف إلى الأوامر المكتوبة أمر إغلاق الكونسول
            InputStream.WriteLine("Exit");
            //قراءة النتائج وعرضها في خانة نص
            RsultTextBox.Text = OutputStream.ReadToEnd();

            InputStream.Close();
            OutputStream.Close();

            CMD.WaitForExit();
            CMD.Close();

المثال كامل مع المرفقات

شغل التطبيق ثم قم بكتابة أمر مثل C:; DiR; Dir /S ومن ثم إضغط على مفتاح الإدخال لترى النتائج

أتمنى لكم التوفيق

TestProcess.rar

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#2

واللهي أنا مش عارف اقوللك اية

ربنا انعم علي المنتدي عموما وعلي خصوصا بشخص رائع زيك

بارك الله لك وفيك وجعلك زخرا للإسلام والمسلمين

#3

جزاك الله خيرا

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#4

أخوتي الكرام أشكركم على الردود

ولكن أود أن أخبركم أن الله أنعم علي بدخولي إلى هذا المنتدى لأتعرف على أشخاص يكنون لي المحبة بلا مقابل

وفقكم الله هداكم الله أستودعكم الله وأتمنى لكم التوفيق جميعاً

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#5

الشرح رائع و جميل و لكن الفكرة الأساسية هي جلب المعلومات في وقت الحدث و هذا لا يحدث هنا حاول تشغيل ال telnet بنفس الطريقه و أكتب help و أرجوا أن تقول لي ما حدث معك

و شكرا علي الفكرة الجميلة

أخوك عمرو عيسي

#6

إن شاء الله سأحاول كتبة برنامج عسى أن يساعدك في ما تريد

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#7

جزاك الله خيرا

#8
R0OT كتب:
الشرح رائع و جميل و لكن الفكرة الأساسية هي جلب المعلومات في وقت الحدث و هذا لا يحدث هنا حاول تشغيل ال telnet بنفس الطريقه و أكتب help و أرجوا أن تقول لي ما حدث معك

للرفع

:^)

فكر بطريقة أخرى

#9

السلام عليكم

جربت هذه الطريقة على Linux من خلال Mono وهي تعمل بشكل جيد

يجب فقط استبدال cmd.exe بـ bin/bash/

طبعا أوامر لينكس تختلف عن أوامر الدوس

هذا الموضوع مغلق.

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