منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
لدي كود التحكم في الدوس لكن فيه خطء - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : لدي كود التحكم في الدوس لكن فيه خطء (/showthread.php?tid=8075)

الصفحات: 1 2


لدي كود التحكم في الدوس لكن فيه خطء - sippar - 20-03-13

السلام عليكم
عندي كود التحم في الدوس من الفيجوال بيسك دوت نت
لكن يضهرلي خطء في الكود

كود :
If Dir("c:\Temp.dos") <> "" Then Kill("c:\Temp.dos")
        If TextBox1.Text = "clr" Then
            TextBox2.Text = ""
            Exit Sub
        End If
        Process.Start("cmd.exe /c " & TextBox1.Text & "> c:\Temp.dos", AppWinStyle.Hide)
        Try
            ReadData()
            Dim OpenResult As New StreamReader("c:\Temp.dos")
            TextBox2.Text = OpenResult.ReadToEnd
            OpenResult.Close()
        Catch ex As FileNotFoundException
            GoTo ReadData
        Catch ex2 As IOException
            GoTo ReadData
        End Try
        Application.DoEvents()

الخطء

هنا
ReadData()

اتمنى الحل


لدي كود التحكم في الدوس لكن فيه خطء - kslawy - 20-03-13

الـ ReadData دالة غير موجودة


لدي كود التحكم في الدوس لكن فيه خطء - sippar - 21-03-13

ممكن تعطيني دالة ReadData


لدي كود التحكم في الدوس لكن فيه خطء - sooriaty03 - 21-03-13

السلام عليكم ورحمة الله وبركاته
أخي الكريم الكلمة ReadData ليست دالة وإنما هي رقم سطر وبالتالي يكون التعديل بالطريقة التالية
كود :
If Dir("c:\Temp.dos") <> "" Then Kill("c:\Temp.dos")
        If TextBox1.Text = "clr" Then
            TextBox2.Text = ""
            Exit Sub
        End If
        Process.Start("cmd.exe /c " & TextBox1.Text & "> c:\Temp.dos", AppWinStyle.Hide)
        Try
ReadData:
            Dim OpenResult As New StreamReader("c:\Temp.dos")
            TextBox2.Text = OpenResult.ReadToEnd
            OpenResult.Close()
        Catch ex As FileNotFoundException
            GoTo ReadData
        Catch ex2 As IOException
            GoTo ReadData
        End Try
        Application.DoEvents()

بالتوفيق


لدي كود التحكم في الدوس لكن فيه خطء - sippar - 21-03-13

شكرا لك و جزاك الله خيرا
و انا روحت حدفة تلك النقطتان ظنيت انهما نوضعو بالخطء :p


لدي كود التحكم في الدوس لكن فيه خطء - sippar - 21-03-13

اخي يضهر لي خطء عندم انفد امر
انضر الى الصورة

http://www11.0zz0.com/2013/03/21/00/383787925.jpg


لدي كود التحكم في الدوس لكن فيه خطء - sooriaty03 - 21-03-13

السلام عليكم ورحمة الله وبركاته
تفضل أخي هذا هو الكود
ولكن لاحظ أنني قمت بتغيير مكان الملف إلى C:\games\Temp.dos
والسبب أن الكتابة على القرص C مباشرة يحتاج إلى إذن مسؤول
وتستطيع أنت تغييره إلى أي مكان آخر
والآن أتركك مع الكود
كود :
Dim FileName As String = "C:\games\Temp.dos"
        If Dir(FileName) <> "" Then Kill(FileName)
        If TextBox1.Text = "clr" Then
            TextBox2.Text = ""
            Exit Sub
        End If
        Dim NewProcess As New System.Diagnostics.ProcessStartInfo
        NewProcess.Arguments = "/c " & TextBox1.Text & " > " & FileName
        NewProcess.FileName = "cmd.exe"
        NewProcess.WindowStyle = ProcessWindowStyle.Hidden
        Process.Start(NewProcess)
        Try
ReadData:
            Dim OpenResult As New StreamReader(FileName)
            TextBox2.Text = OpenResult.ReadToEnd
            OpenResult.Close()
        Catch ex As FileNotFoundException
            GoTo ReadData
        Catch ex2 As IOException
            GoTo ReadData
        End Try
        Application.DoEvents()

بالتوفيق


لدي كود التحكم في الدوس لكن فيه خطء - sippar - 21-03-13

ولله اخي البرنامج لا يضهر اخطاء لكن عندما اكتب امر يعلق البرنامج ( يحصل بلوك ) و لا يشتغل Sad
هل يوجد حل

شوف الصورة
http://www13.0zz0.com/2013/03/21/10/574006377.jpg

[ATTACH=CONFIG]2044[/ATTACH]


لدي كود التحكم في الدوس لكن فيه خطء - sippar - 21-03-13

ولله اخي البرنامج لا يضهر اخطاء لكن عندما اكتب امر يعلق البرنامج ( يحصل بلوك ) و لا يشتغل Sad
هل يوجد حل


لدي كود التحكم في الدوس لكن فيه خطء - sooriaty03 - 21-03-13

السلام عليكم ورحمة الله وبركاته
أخي الكريم الكود صحيح 100%
لكن سبب التعليق أن البرنامج سيقوم بتنفيذ أمر دوس وسينتظر النتائج عن طريق الملف Temp.dos
فإذا لم يجد الملف سيدخل البرنامج في حلقة تكرارية حتى يظهر الملف فإذا لم يظهر الملف أبدا سوف يتوقف عن الإستجابة تماما
وسبب عدم ظهور الملف هو أن الدوس ليس قادرا على حفظ النتائج في مكان يطلب من إذن مسؤول وإلا سيعطي نتيجة واحدة وهي
Access Denied
ولن يحفظ النتائج، وسيبقى البرنامج عالقا داخل الحلقة التكرارية بانتظار ظهور الملف الذي لن يظهر أبدا
حسنا ما الحل؟!!
الحل:
هذا الملف المضغوط هو عبارة عن مشروع، فقط قم بفك الضغط عنه وضعه على سطح الكتب أو في أي مكان لا يطلب إذن مسؤول
وقم بتنفيذ المشروع وسوف لن يعلق بإذن الله وستجد النتائج ظهرت أمامك

بالتوفيق