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

نام تاپیک: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

  1. #1
    کاربر دائمی
    تاریخ عضویت
    خرداد 1402
    محل زندگی
    تهران
    پست
    110

    Question اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    سلام و عرض ارادت بر اساتید عزیز
    بنده یک فایل cmd دارم که حاوی پیش فرض‌های متنی است و با تغییر آن پیش فرض ها برنامه exe خاصی را هندل می‌کند پروژه‌ای در vb.net ساخته‌ام که محتویات فایل cmd را ویرایش می‌کند ولی نمی‌دانم چطور آن فایل cmd را از داخل پروژه با کلیک بر روی یک دکمه (باتن) اجرا کنم

    سپاس از حضور اساتید گرامی در این سایت عالی

  2. #2
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,646

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    سلام.
    بهتره بجای اون فایل cmd دستوراتش رو با تابع shell یا تابع Start از کلاس Process اجرا کنید.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    خرداد 1402
    محل زندگی
    تهران
    پست
    110

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    سلام.
    بهتره بجای اون فایل cmd دستوراتش رو با تابع shell یا تابع Start از کلاس Process اجرا کنید.
    بلد نیستم دستورات داخل فایل cmd را به تابع shell بدهم کل متن داخلشو با عنوان مای کامنت خوندم دادم به شل ولی موفق نبود

  4. #4
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,646

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط saeidmobashery مشاهده تاپیک
    بلد نیستم دستورات داخل فایل cmd را به تابع shell بدهم کل متن داخلشو با عنوان مای کامنت خوندم دادم به شل ولی موفق نبود
    می شه همون cmd رو با shell اجرا کرد

  5. #5
    کاربر دائمی
    تاریخ عضویت
    خرداد 1402
    محل زندگی
    تهران
    پست
    110

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    می شه همون cmd رو با shell اجرا کرد
    با چه کدی برادر جان ؟

  6. #6
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    458

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    Private Sub btnRunCMD_Click(sender As Object, e As EventArgs) Handles btnRunCMD.Click 
    Dim cmdPath As String = "C:\path\to\your\cmd\file.cmd" ' مسیر فایل cmd خود را در اینجا قرار دهید

    Dim startInfo As New ProcessStartInfo()
    startInfo.FileName = "cmd.exe"
    startInfo.Arguments = "/C " & cmdPath ' استفاده از /C برای اجرای دستورات در cmd و بستن آن بعد از اجرا
    startInfo.UseShellExecute = False ' تنظیم UseShellExecute به False برای اجرای cmd به صورت مستقیم
    startInfo.RedirectStandardOutput = True ' تنظیم RedirectStandardOutput به True برای دریافت خروجی cmd

    Dim process As New Process()
    process.StartInfo = startInfo
    process.Start()

    ' می توانید خروجی را دریافت کنید و انجام عملیات دیگر روی آن انجام دهید
    Dim output As String = process.StandardOutput.ReadToEnd()
    ' اینجا خروجی را می توانید استفاده کنید یا نمایش دهید
    MessageBox.Show(output)
    End Sub

  7. #7
    کاربر دائمی
    تاریخ عضویت
    خرداد 1402
    محل زندگی
    تهران
    پست
    110

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط پرستو پارسایی مشاهده تاپیک
    Private Sub btnRunCMD_Click(sender As Object, e As EventArgs) Handles btnRunCMD.Click 
    Dim cmdPath As String = "C:\path\to\your\cmd\file.cmd" ' مسیر فایل cmd خود را در اینجا قرار دهید

    Dim startInfo As New ProcessStartInfo()
    startInfo.FileName = "cmd.exe"
    startInfo.Arguments = "/C " & cmdPath ' استفاده از /C برای اجرای دستورات در cmd و بستن آن بعد از اجرا
    startInfo.UseShellExecute = False ' تنظیم UseShellExecute به False برای اجرای cmd به صورت مستقیم
    startInfo.RedirectStandardOutput = True ' تنظیم RedirectStandardOutput به True برای دریافت خروجی cmd

    Dim process As New Process()
    process.StartInfo = startInfo
    process.Start()

    ' می توانید خروجی را دریافت کنید و انجام عملیات دیگر روی آن انجام دهید
    Dim output As String = process.StandardOutput.ReadToEnd()
    ' اینجا خروجی را می توانید استفاده کنید یا نمایش دهید
    MessageBox.Show(output)
    End Sub

    سلام استاد عزیز و عرض ارادت
    دقیق کد شما را پیاده سازی کردم ولی مسیج باکس خالیه و CMD که با اجرای خارج از پروژه فایل تکست خروجی می‌داد هیچ خروجی نشان نداد

  8. #8
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,646

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط saeidmobashery مشاهده تاپیک
    سلام استاد عزیز و عرض ارادت
    دقیق کد شما را پیاده سازی کردم ولی مسیج باکس خالیه و CMD که با اجرای خارج از پروژه فایل تکست خروجی می‌داد هیچ خروجی نشان نداد
    حالا چرا cmd
    دستوراتی ک نوشتی اینجا ارسال کن معادل Vb .net یا Script اون ایجاد بشه...

  9. #9
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,646

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط saeidmobashery مشاهده تاپیک
    با چه کدی برادر جان ؟
    Shell function (Visual Basic for Applications) | Microsoft Learn


    ' Specifying 1 as the second argument opens the application in
    ' normal size and gives it the focus.
    Dim RetVal
    RetVal = Shell("C:\WINDOWS\NOTEPAD.EXE", 1) ' Open Notepad.

  10. #10
    کاربر دائمی
    تاریخ عضویت
    خرداد 1402
    محل زندگی
    تهران
    پست
    110

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    حالا چرا cmd
    دستوراتی ک نوشتی اینجا ارسال کن معادل Vb .net یا Script اون ایجاد بشه...
    چشم برادر و سپاس از پیگیری شما
    متن داخل فایل cmd :

    @echo off
    Exporter.exe "2" "2007-12-15" "2024-03-01" Dollar.txt 1234123454 ali1360

  11. #11
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,646

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط saeidmobashery مشاهده تاپیک
    چشم برادر و سپاس از پیگیری شما
    متن داخل فایل cmd :

    @echo off
    Exporter.exe "2" "2007-12-15" "2024-03-01" Dollar.txt 1234123454 ali1360
    این فایل Exporter دقیقا چیه؟

  12. #12
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,646

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    از پست شاره 6 کدها رو استفاده کن

    با این تغییرات

    startInfo.FileName = "Exporter.exe"
    startInfo.Arguments = "'2' '2007-12-15' '2024-03-01' Dollar.txt 1234123454 ali1360"


    ولی اگر فایل Exporter.exe کنار نرم افزار نیست یا باید آدرس دقیق نوشته بشه یا در رجیستری ثبت بشه

  13. #13
    کاربر دائمی
    تاریخ عضویت
    خرداد 1402
    محل زندگی
    تهران
    پست
    110

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    از پست شاره 6 کدها رو استفاده کن

    با این تغییرات

    startInfo.FileName = "Exporter.exe"
    startInfo.Arguments = "'2' '2007-12-15' '2024-03-01' Dollar.txt 1234123454 ali1360"


    ولی اگر فایل Exporter.exe کنار نرم افزار نیست یا باید آدرس دقیق نوشته بشه یا در رجیستری ثبت بشه

    برادر جان کد زیر را اعمال کردم :


    Private Sub RunCMD_Button_Click(sender As Object, e As EventArgs) Handles RunCMD_Button.Click
    Dim startInfo As New ProcessStartInfo()
    startInfo.FileName = "Exporter.exe"
    startInfo.Arguments = "'2' '2007-12-15' '2024-03-01' Dollar.txt 1234123454 ali1360"
    startInfo.UseShellExecute = False
    startInfo.RedirectStandardOutput = True
    Dim process As New Process()
    process.StartInfo = startInfo
    process.Start()
    Dim output As String = process.StandardOutput.ReadToEnd()
    MessageBox.Show(output)
    End Sub



    خطای زیر به دست آمد :
    System.ComponentModel.Win32Exception: 'The system cannot find the file specified'

  14. #14
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,646

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط saeidmobashery مشاهده تاپیک
    برادر جان کد زیر را اعمال کردم :


    Private Sub RunCMD_Button_Click(sender As Object, e As EventArgs) Handles RunCMD_Button.Click
    Dim startInfo As New ProcessStartInfo()
    startInfo.FileName = "Exporter.exe"
    startInfo.Arguments = "'2' '2007-12-15' '2024-03-01' Dollar.txt 1234123454 ali1360"
    startInfo.UseShellExecute = False
    startInfo.RedirectStandardOutput = True
    Dim process As New Process()
    process.StartInfo = startInfo
    process.Start()
    Dim output As String = process.StandardOutput.ReadToEnd()
    MessageBox.Show(output)
    End Sub



    خطای زیر به دست آمد :
    System.ComponentModel.Win32Exception: 'The system cannot find the file specified'
    برای FileName آدرس کامل استفاده کن.

  15. #15
    کاربر دائمی
    تاریخ عضویت
    خرداد 1402
    محل زندگی
    تهران
    پست
    110

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    برای FileName آدرس کامل استفاده کن.
    مسیج باکس خالیه و CMD که با اجرای خارج از پروژه فایل تکست خروجی می‌داد هیچ خروجی نشان نداد

  16. #16
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,646

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط saeidmobashery مشاهده تاپیک
    مسیج باکس خالیه و CMD که با اجرای خارج از پروژه فایل تکست خروجی می‌داد هیچ خروجی نشان نداد
    از ویژگی Run As Administrator استفاده کنید

  17. #17
    کاربر دائمی
    تاریخ عضویت
    خرداد 1402
    محل زندگی
    تهران
    پست
    110

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    از ویژگی Run As Administrator استفاده کنید
    بیشتر توضیح بدین ممنون میشم نمی دونم به چه صورتی انجام بدم
    آخرین ویرایش به وسیله saeidmobashery : سه شنبه 17 بهمن 1402 در 16:09 عصر

  18. #18
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    458

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net



    Dim processStartInfo As New ProcessStartInfo()
    processStartInfo.FileName = "cmd.exe"
    processStartInfo.Arguments = "/C @echo off & Exporter.exe ""2"" ""2007-12-15"" ""2024-03-01"" Dollar.txt 1234123454 ali136" ' دستور مورد نظر خود را اینجا قرار دهید
    processStartInfo.Verb = "runas" ' تنظیم دسترسی مدیریتی
    Process.Start(processStartInfo)

    مطمئن شوید که مسیر فایل cmd و همچنین پارامترهای دستور را به درستی وارد کرده‌اید.

  19. #19
    کاربر دائمی
    تاریخ عضویت
    خرداد 1402
    محل زندگی
    تهران
    پست
    110

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    عرض سلام و احترام خدمت دوستان و اساتید عزیز

    بنده موفق شدم cmd را باز کنم و برنامه مد نظرم را با کامنت‌های ورودی مخصوصش به کمک کدهای قبلی مندرج در این تاپیک ران کنم و سپاس از راهنمایی دوستان
    اکنون مشکل جدیدی دارم :

    پنجره cmd که باز می‌شود را بلد نیستم ببندم
    از دستور زیر کمک می‌گیرم ولی گویا زودتر از اینکه پردازش تمام شود cmd را می‌بندد
    process.CloseMainWindow()

    در واقع به دنبال دستوری هستم که متوجه شود برنامه cmd کارش تمام شده و اگر بسته نشده آن را ببندد
    این اگرش خیلی مهم است چون در مواردی نادر پنجره بسته cmd بعد از پایان کار بسته می‌شود

    ممنون می‌شوم راهنمایی بفرمایید

  20. #20
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    458

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    هنگام کلیک بر روی دکمه "Start"، یک فرآیند جدید cmd.exe ایجاد می‌شود و دستورات مورد نظر شما اجرا می‌شن. سپس با استفاده از متد WaitForExit()، صبر می‌کنیم تا پردازش کامل بشه و پنجره cmd بسته شود. در صورتی که بخواهید پنجره cmd را در هر زمانی ببندید، می‌توانید از متد Kill() استفاده کنید.

    Imports System.Diagnostics


    Public Class Form1
    Dim cmdProcess As Process


    Private Sub StartButton_Click(sender As Object, e As EventArgs) Handles StartButton.Click
    cmdProcess = New Process()
    Dim startInfo As New ProcessStartInfo("cmd.exe")
    cmdProcess.StartInfo = startInfo
    cmdProcess.Start()


    ' اجرای دستورات مورد نظر


    ' منتظر بمانید تا پردازش کامل شود و پنجره cmd بسته شود
    cmdProcess.WaitForExit()
    End Sub


    Private Sub StopButton_Click(sender As Object, e As EventArgs) Handles StopButton.Click
    If cmdProcess IsNot Nothing AndAlso Not cmdProcess.HasExited Then
    ' بستن پنجره cmd به صورت اجباری (Forcefully)
    cmdProcess.Kill()
    End If
    End Sub
    End Class

  21. #21
    کاربر دائمی
    تاریخ عضویت
    خرداد 1402
    محل زندگی
    تهران
    پست
    110

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط پرستو پارسایی مشاهده تاپیک
    هنگام کلیک بر روی دکمه "Start"، یک فرآیند جدید cmd.exe ایجاد می‌شود و دستورات مورد نظر شما اجرا می‌شن. سپس با استفاده از متد WaitForExit()، صبر می‌کنیم تا پردازش کامل بشه و پنجره cmd بسته شود. در صورتی که بخواهید پنجره cmd را در هر زمانی ببندید، می‌توانید از متد Kill() استفاده کنید.

    Imports System.Diagnostics


    Public Class Form1
    Dim cmdProcess As Process


    Private Sub StartButton_Click(sender As Object, e As EventArgs) Handles StartButton.Click
    cmdProcess = New Process()
    Dim startInfo As New ProcessStartInfo("cmd.exe")
    cmdProcess.StartInfo = startInfo
    cmdProcess.Start()


    ' اجرای دستورات مورد نظر


    ' منتظر بمانید تا پردازش کامل شود و پنجره cmd بسته شود
    cmdProcess.WaitForExit()
    End Sub


    Private Sub StopButton_Click(sender As Object, e As EventArgs) Handles StopButton.Click
    If cmdProcess IsNot Nothing AndAlso Not cmdProcess.HasExited Then
    ' بستن پنجره cmd به صورت اجباری (Forcefully)
    cmdProcess.Kill()
    End If
    End Sub
    End Class

    استاد عزیز کد WaitForExit() را استفاده کردم حالا تا زمانی که cmd بسته نشود عملیات وی بی تکمیل نمی‌شود
    cmd پایان پردازش را اعلام می‌کند و برای بسته شدن اینتر نیاز دارد

  22. #22
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    458

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    Imports System.Diagnostics

    Public Class Form1
    Dim cmdProcess As Process


    Private Sub StartButton_Click(sender As Object, e As EventArgs) Handles StartButton.Click
    cmdProcess = New Process()
    Dim startInfo As New ProcessStartInfo("cmd.exe")
    cmdProcess.StartInfo = startInfo


    ' اضافه کردن رویداد بسته شدن به Process
    AddHandler cmdProcess.Exited, AddressOf cmdProcess_Exited


    cmdProcess.Start()
    End Sub


    Private Sub StopButton_Click(sender As Object, e As EventArgs) Handles StopButton.Click
    If cmdProcess IsNot Nothing AndAlso Not cmdProcess.HasExited Then
    cmdProcess.Kill()
    End If
    End Sub


    Private Sub cmdProcess_Exited(sender As Object, e As EventArgs)
    ' عملیات را به پایان برسانید
    End Sub
    End Class


    یک رویداد Exited به Process اضافه کردم. این رویداد هنگامی فراخوانی می‌شود که cmd بسته بشه. شما می‌تونید کدهای مربوط به پایان عملیات را در داخل رویداد cmdProcess_Exited قرار دهید.

  23. #23
    کاربر دائمی
    تاریخ عضویت
    خرداد 1402
    محل زندگی
    تهران
    پست
    110

    نقل قول: اجرای فایل‌های دارای پسوند cmd در پروژه vb.net

    نقل قول نوشته شده توسط پرستو پارسایی مشاهده تاپیک
    Imports System.Diagnostics

    Public Class Form1
    Dim cmdProcess As Process


    Private Sub StartButton_Click(sender As Object, e As EventArgs) Handles StartButton.Click
    cmdProcess = New Process()
    Dim startInfo As New ProcessStartInfo("cmd.exe")
    cmdProcess.StartInfo = startInfo


    ' اضافه کردن رویداد بسته شدن به Process
    AddHandler cmdProcess.Exited, AddressOf cmdProcess_Exited


    cmdProcess.Start()
    End Sub


    Private Sub StopButton_Click(sender As Object, e As EventArgs) Handles StopButton.Click
    If cmdProcess IsNot Nothing AndAlso Not cmdProcess.HasExited Then
    cmdProcess.Kill()
    End If
    End Sub


    Private Sub cmdProcess_Exited(sender As Object, e As EventArgs)
    ' عملیات را به پایان برسانید
    End Sub
    End Class


    یک رویداد Exited به Process اضافه کردم. این رویداد هنگامی فراخوانی می‌شود که cmd بسته بشه. شما می‌تونید کدهای مربوط به پایان عملیات را در داخل رویداد cmdProcess_Exited قرار دهید.

    سپاس از زحمات سرکار خانم پارسایی ، بالاخره امشب موفق شدم

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

  1. سوال: افزودن پسوند به فایل بدون پسوند و اجرای آن
    نوشته شده توسط sajadzare در بخش C#‎‎
    پاسخ: 3
    آخرین پست: پنج شنبه 27 خرداد 1395, 13:33 عصر
  2. آپلود فایل با پسوندهای مختلف
    نوشته شده توسط ali_72 در بخش ASP.NET MVC
    پاسخ: 1
    آخرین پست: شنبه 09 خرداد 1394, 09:09 صبح
  3. سوال: سوال؟ فرق فایلهای سرآیند با پسوند و بدون پسوند چیه؟
    نوشته شده توسط Hadiir.net در بخش برنامه نویسی در محیط QT و هم خانواده هایش
    پاسخ: 2
    آخرین پست: یک شنبه 20 اردیبهشت 1394, 11:18 صبح
  4. آموزش: اجرای یک فایل یا پسوند با برنامه ما و تغییر ایکن ان پسوند
    نوشته شده توسط abdullah20 در بخش C#‎‎
    پاسخ: 2
    آخرین پست: جمعه 06 دی 1392, 23:19 عصر
  5. پاسخ: 2
    آخرین پست: یک شنبه 23 تیر 1392, 22:12 عصر

برچسب های این تاپیک

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

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