PDA

View Full Version : سوال: مشکل در اجرا کردن برنامه از داخل کد



dildoo
پنج شنبه 13 خرداد 1389, 12:08 عصر
سلام دوستان
من برای اجرای برنامه ام احتیاج به یه برنامه دیگه دارم که با این کد صداش میکنم

static public void StartProcess()
{
for (int i = 0; i < Process.GetProcesses().Length; i++)
{
Process process = Process.GetProcesses()[i];
if (process.ProcessName != "process") continue;
return;
}
string processPath = @"C:\Program Files\process.exe");
Process.Start(processPath);
}ولی برنامه ام کار نمیکنه البته برنامه اجرا میشه ولی درست کار نمیکنه جالب اینه که اگه برنامه رو دستی اجرا کنم درست کار میکنه به نظرتون مشکل کجاست کسی قبلا همچین مشکلی داشته
ممنون از توجهتون

exlord
پنج شنبه 13 خرداد 1389, 12:22 عصر
اولا کدتو به این صورت اصلاح کن ....

foreach (Process item in Process.GetProcesses())
{
if (item.ProcessName != "process") continue;
return;
}
string processPath = @"C:\Program Files\process.exe";
Process.Start(processPath);

دوما .... خطا میده ؟ اررور میده ؟؟ چی میگه؟؟؟

dildoo
پنج شنبه 13 خرداد 1389, 13:21 عصر
اولا سلام
ثانیا هیچی نمیگه برنامه هم اجرا میشه یعنی شما میتونی System tray ویندوز هم ببینیش ولی کاری رو که باید انجام نمیده
ثالثا ممنون از راهنماییتون راجع به کد با اینکه جفتش یه نتیجه رو بر میگردونه
رابعا هم ممنون از جوابتون :لبخندساده:

Peyman.Gh
پنج شنبه 13 خرداد 1389, 13:27 عصر
یعنی برنامه ای که میخواهید در برنامه اجرا کنید اجرا نمیشود ؟!

dildoo
پنج شنبه 13 خرداد 1389, 13:37 عصر
چرا عزیز جان از داخل کد اجرا میشه ولی کار نمیکنه
ولی اگه دستی اجراش کنم عین بنز کار میکنه نمیدونم مشکلش چیه ؟؟؟؟ :ناراحت:

Peyman.Gh
پنج شنبه 13 خرداد 1389, 13:53 عصر
دوست عزیز یعنی چی اجرا میشود اما کار نمیکند برنامه اصلی یا برنامه ای که میخواهید اجرا کنید ؟! شما با استفاده از Process میخواهید یک برنامه را اجرا کنید ؟!

Open-Source
پنج شنبه 13 خرداد 1389, 13:55 عصر
ممکنه برنامه را باید همراه با یک پارامتر اجرا کنید.
مثلا این کد برنامه Notepad رو به همراه یه فایل اجرا میکنه:
Process myProcess = Process.Start("Notepad","C:\\a.txt");

امیدوارم مطلب رو رسونده باشم.

dildoo
پنج شنبه 13 خرداد 1389, 14:01 عصر
دوباره سلام
من یک برنامه ای دارم ( برنامه اصلی ) که یک برنامه دیگرو ( برنامه ثانی که البته من ننوشتمش ) تو کدش صدا میکنه این برنامه ثانی کارش اینه که میره روی یک پورت میشینه و اونو Listen میکنه حالا وقتی اونو از توی کد صدا میکنم اجرا میشه یعنی توی Task Manager میتونی Process رو ببینی ولی عملا هیچ پاسخی رو بر نمیگردونه این در حالیه که اگر process رو kill کنم و اون برنامه رو ( برنامه ثانی ) دستی اجرا کنم نتیجه مورد نظر رو بهم بر میگردونه
ممنون از توجهتون

dildoo
پنج شنبه 13 خرداد 1389, 14:04 عصر
ممکنه برنامه را باید همراه با یک پارامتر اجرا کنید.
مثلا این کد برنامه Notepad رو به همراه یه فایل اجرا میکنه:
Process myProcess = Process.Start("Notepad","C:\\a.txt");

امیدوارم مطلب رو رسونده باشم.

فکر نکنم البته پارامتر هم میگیره ولی با اونام کار نمیکنه

exlord
شنبه 15 خرداد 1389, 10:53 صبح
اولا سلام
ثانیا هیچی نمیگه برنامه هم اجرا میشه یعنی شما میتونی System tray ویندوز هم ببینیش ولی کاری رو که باید انجام نمیده
ثالثا ممنون از راهنماییتون راجع به کد با اینکه جفتش یه نتیجه رو بر میگردونه
رابعا هم ممنون از جوابتون :لبخندساده:

اولا : شما تو حلقت هر بار اجرا میشه لیست پروسس ها رو از اول می خونی و ایندکس i رو برمیداری ...ممکنه وقتی که حلقه در حال اجراست تعداد پروسس ها ممکنه عوض بشه که اینجوری به احتمال زیاد حلقه جواب درست نده ...

دوما : سعی کت این پروسس رو توی یه ترد دیگه اجرا کنی ببینی چی میشه.....