منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : لدي كود التحكم في الدوس لكن فيه خطء
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم
عندي كود التحم في الدوس من الفيجوال بيسك دوت نت
لكن يضهرلي خطء في الكود

كود :
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()

اتمنى الحل
الـ ReadData دالة غير موجودة
ممكن تعطيني دالة ReadData
السلام عليكم ورحمة الله وبركاته
أخي الكريم الكلمة 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()

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

http://www11.0zz0.com/2013/03/21/00/383787925.jpg
السلام عليكم ورحمة الله وبركاته
تفضل أخي هذا هو الكود
ولكن لاحظ أنني قمت بتغيير مكان الملف إلى 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()

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

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

[ATTACH=CONFIG]2044[/ATTACH]
ولله اخي البرنامج لا يضهر اخطاء لكن عندما اكتب امر يعلق البرنامج ( يحصل بلوك ) و لا يشتغل Sad
هل يوجد حل
السلام عليكم ورحمة الله وبركاته
أخي الكريم الكود صحيح 100%
لكن سبب التعليق أن البرنامج سيقوم بتنفيذ أمر دوس وسينتظر النتائج عن طريق الملف Temp.dos
فإذا لم يجد الملف سيدخل البرنامج في حلقة تكرارية حتى يظهر الملف فإذا لم يظهر الملف أبدا سوف يتوقف عن الإستجابة تماما
وسبب عدم ظهور الملف هو أن الدوس ليس قادرا على حفظ النتائج في مكان يطلب من إذن مسؤول وإلا سيعطي نتيجة واحدة وهي
Access Denied
ولن يحفظ النتائج، وسيبقى البرنامج عالقا داخل الحلقة التكرارية بانتظار ظهور الملف الذي لن يظهر أبدا
حسنا ما الحل؟!!
الحل:
هذا الملف المضغوط هو عبارة عن مشروع، فقط قم بفك الضغط عنه وضعه على سطح الكتب أو في أي مكان لا يطلب إذن مسؤول
وقم بتنفيذ المشروع وسوف لن يعلق بإذن الله وستجد النتائج ظهرت أمامك

بالتوفيق
الصفحات : 1 2