نمایش نتایج 1 تا 2 از 2

نام تاپیک: هندل کردن یک process از طریق ماژول یا کلاس

  1. #1

    هندل کردن یک process از طریق ماژول یا کلاس

    با سلام
    بنده میخوام یک ماژول با کلاس داشته باشم که شامل 2 متد فرستادن دستور و استارت یک پروسس باشد که از تمامی فرم های برنامه به این دو متد دسترسی داشته باشم.
    قابل ذکره که بنده 2 تا رویداد خواندن خروجی و خواندن ارور را هم که از سمت آبجکت پروسس ایجاد میشه رو هم هندل کنم .

    این 2 تا متد ماژول :



    Module Module1


    Public Sub start(ByVal appName As String, ByVal outPut As Boolean, ByVal _error As Boolean)

    Form1.myProcess = New Process
    With Form1.myProcess.StartInfo
    .FileName = appName
    .UseShellExecute = False
    .CreateNoWindow = True
    .RedirectStandardInput = True
    .RedirectStandardOutput = True
    .RedirectStandardError = True

    End With


    Form1.myProcess.Start()
    If (outPut) Then
    Form1.myProcess.BeginErrorReadLine()
    End If
    If (_error) Then
    Form1.myProcess.BeginOutputReadLine()
    End If


    End Sub




    Public Sub sendCommand(ByVal command As String)

    Form1.myProcess.StartInfo.RedirectStandardError = False
    Form1.myProcess.StartInfo.RedirectStandardOutput = False
    Form1.myProcess.StandardInput.WriteLine(command)
    Form1.myProcess.StandardInput.Flush()

    End Sub

    End Module






    و این هم کدهای داخل فرم 1 :


    Public Class Form1


    Public WithEvents myProcess As Process
    Private Delegate Sub AppendOutputTextDelegate(ByVal text As String)









    Private Sub AppendOutputText(ByVal text As String)
    If TextBoxout.InvokeRequired Then
    Dim myDelegate As New AppendOutputTextDelegate(AddressOf AppendOutputText)
    Me.Invoke(myDelegate, text)
    Else
    TextBoxout.AppendText(text)
    End If


    End Sub


    Private Sub MyProcess_ErrorDataReceived(ByVal sender As Object, ByVal e As System.Diagnostics.DataReceivedEventArgs) Handles myProcess.ErrorDataReceived


    AppendOutputText(vbCrLf & "Error: " & e.Data)

    End Sub


    Private Sub MyProcess_OutputDataReceived(ByVal sender As Object, ByVal e As System.Diagnostics.DataReceivedEventArgs) Handles myProcess.OutputDataReceived

    AppendOutputText(vbCrLf & "Output: " & e.Data)



    End Sub




    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click

    start("cmd.exe", True, True)
    sendCommand("dir")



    End Sub


    End Class




    همینطور که مشاهده میکنید :
    در داخل ماژول من مجبور شدم به myprocess در form1 دستور بدم و در داخل فرم 1 هم رویدادهای گرفتن ارور و کرفتن خروجی رو هم باید بنویسم.

    چطور میتونم تمام این کارها در داخل یک کلاس یا یک ماژول انجام بدم.

    البته راهی که به ذهن من رسید اینه که یک کلاس به نام myform ایجاد کنم که از فرم ارث بری کنه و myprocess و 2 رویداد را override کنم و در زمان استفاده از متدهای ماژول
    فرم 1 را نیز در وردی توابع به ماژول پاس بدم و به آبجکت process هر فرم دستورات را اعمال کنم...

  2. #2
    مدیر بخش آواتار gilsoft
    تاریخ عضویت
    آبان 1386
    محل زندگی
    رشت
    پست
    753

    Post نقل قول: هندل کردن یک process از طریق ماژول یا کلاس

    نقل قول نوشته شده توسط ravaei مشاهده تاپیک
    چطور میتونم تمام این کارها در داخل یک کلاس یا یک ماژول انجام بدم.
    سلام دوست عزیز

    پروژه‌ای که ضمیمه کردم .. تا حدی مشکل شما رو برطرف می‌کنه ...

    فقط اینکه باید ازش ایده بگیری

    قبل از اولین اجرا .. پروژه رو Build کن ...

    موفق باشید .....
    فایل های ضمیمه فایل های ضمیمه
    قوانین سایت برنامه نویس [به هیچ عنوان از طریق پیام خصوصی به سوالات پاسخ داده نمی‌شود.]
    حمید محرابی

    چون وا نمیکنی گِره‌ای خود گِره مّشو / ابرو گشاده باش چو دستت گشاده نیست

تاپیک های مشابه

  1. سوال: انتقال مقدار از يك Table به يك Textbox از طريق LINQ يا هر راهي به جز Bind كردن يا از طريق SQL ؟
    نوشته شده توسط akhlaghi_mohammad در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 1
    آخرین پست: شنبه 26 آذر 1390, 01:35 صبح
  2. Import کردن یک Query از طریق کد
    نوشته شده توسط شاپرک در بخش Access
    پاسخ: 8
    آخرین پست: دوشنبه 28 فروردین 1385, 20:31 عصر
  3. ذخیره کردن یک برنامه از طریق VB
    نوشته شده توسط ehsan_ansaripoor در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: چهارشنبه 23 فروردین 1385, 18:27 عصر
  4. بوت کردن یک کامپیوتر از طریق شبکه
    نوشته شده توسط omid_Ahmadi در بخش شبکه و Networking‌
    پاسخ: 9
    آخرین پست: دوشنبه 30 خرداد 1384, 07:37 صبح
  5. مخفی کردن یک process از process list در win 2K,Xp
    نوشته شده توسط persianboy در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: پنج شنبه 26 شهریور 1383, 08:04 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •