PDA

View Full Version : سوال: اجرا کردن یک فایل exe وسط برنامه من



ardeshir1365
شنبه 02 اردیبهشت 1391, 11:57 صبح
سلام دوستان
من میخوام وقتی توی برنامه ام یک کلید رو فشار دادم بیاد اسم برنامه ای که توی تکست باکس هست رو بخونه و اجرا کنه و اگر اون برنامه در حالت اجرا هستش هیچ اتفاقی رخ ندهد
بطور مثال من با فشردن دکمه اجرای فایل توی برنامه خودم بیاد idm.exe رو که در داخل تکست باکس نوشتم رو اجرا کنه و اگر برنامه idm.exe در حال اجرا هست دوباره اون رو اجرا نکنه

ardeshir1365
شنبه 02 اردیبهشت 1391, 12:14 عصر
این کد explorer.exe رو اجرا میکنه

System.Diagnostics.Process.Start("explorer");

الان فقط مشکل من تو قسمت شرطش هست، اینکه اگر explorer.exe در حال اجرا هست اون رو دوباره اجرا نکنه

ROSTAM2
شنبه 02 اردیبهشت 1391, 12:17 عصر
یه پروسس جدید بساز که بتونی کنترلش کنی دوست عزیز (New Process)

omidamiry
شنبه 02 اردیبهشت 1391, 12:21 عصر
شما از یوزینگ io استفاده کن

file.strart(path);

ardeshir1365
شنبه 02 اردیبهشت 1391, 13:35 عصر
شما از یوزینگ io استفاده کن

file.strart(path);
بنظرم سوال منو درست متوجه نشدی
دوستان من تو قسمت شرطش موندم و نمیدونم چه کدی بنویسم
اگه لطف کنید و کد این قسمت رو برام بذارید ممنون میشم

Mahmoud.Afrad
شنبه 02 اردیبهشت 1391, 15:49 عصر
خوب با همین کلاس باید ور بری دیگه:


int i = System.Diagnostics.Process.GetProcessesByName("notepad").Count();
if (i == 0)
{
System.Diagnostics.Process.Start("notepad.exe");
}

ROSTAM2
شنبه 02 اردیبهشت 1391, 15:58 عصر
Dim PROC As New Process
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

MsgBox(PROC.HasExited)


End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
PROC = Process.Start("Notepad.exe")
End Sub

ardeshir1365
یک شنبه 03 اردیبهشت 1391, 11:39 صبح
خوب با همین کلاس باید ور بری دیگه:


int i = System.Diagnostics.Process.GetProcessesByName("notepad").Count();
if (i == 0)
{
System.Diagnostics.Process.Start("notepad.exe");
}

ممنون از پاسخ که دادی
ولی این کار نمیکنه

ardeshir1365
یک شنبه 03 اردیبهشت 1391, 11:40 صبح
Dim PROC As New Process
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

MsgBox(PROC.HasExited)


End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
PROC = Process.Start("Notepad.exe")
End Sub
ممنونم که پاسخ دادی
دوست عزیز کدئ سی شارپ نداری

ROSTAM2
یک شنبه 03 اردیبهشت 1391, 14:16 عصر
تنها چیزی که متفاوته تعریف متغیره که شما باید اونو تو ماجول کد فرمتون به صورت عمومی تعریف کنید

Dim PROC As New Process

Process Proc = New Process

این برای اجراست

PROC = Process.Start("Notepad.exe")

PROC = Process.Start("Notepad.exe");

اینم واسه چک کردن اینکه خارج شده یا هست

MsgBox(PROC.HasExited)

Message.Show(PROC.HasExited);

شایدم MessageBox.Show

m2_farzan
یک شنبه 03 اردیبهشت 1391, 17:02 عصر
ممنون از پاسخ که دادی
ولی این کار نمیکنه

این کد درسته. فقط اون بالا یه اشتباه تایپی داره که به جای notepad نوشته not epad. شاید دلیل اینکه کار نمیکنه همین باشه.

Mahmoud.Afrad
یک شنبه 03 اردیبهشت 1391, 20:16 عصر
در شرط به جای notepad نام برنامه رو بدون پسوند بنویسید مثلا همون idm که مدنظر خودتون هست
درضمن این اشتباه به خود فروم یا ویرایشگرش برمیگرده چون متن رو عینا از توی vs کپی پیست میکنم.