PDA

View Full Version : سوال: پیدا نشدن Process درحالی که ان Process باز است!!



amin_sltny
پنج شنبه 21 آذر 1392, 11:34 صبح
سلام بچه ها من یه پروسسی را با کد زیر اجرا می کنم و نامش را می گیرم:

ProceesName = Process.Start(Gameinfo).ProcessName;

و حالا تویه کد دیگه اون را پیدا میکنم و حذفش می کنم:


System.Diagnostics.Process[] procs = Process.GetProcessesByName(c.ProceesName);
foreach (var pro in procs)
{
pro.Kill();
}

ولی بعضی از پروسه ها را پیدا نمیکنه و وقتی بررسی کردم دیدم توی TaskManager نام اون پروسه یه چیز دیگه است. لطفا کمکم کنید باید چه کار کنم!!؟؟

plus
پنج شنبه 21 آذر 1392, 15:44 عصر
اگه Process ها رو خودتون اجرا میکنید چرا از اسمش واسه Kill کردنش استفاده میکنید؟ میتونید از شی Process ساخته شده استفاده کنید یا حداقل ID اون Process ها.

amin_sltny
جمعه 22 آذر 1392, 09:26 صبح
اگه Process ها رو خودتون اجرا میکنید چرا از اسمش واسه Kill کردنش استفاده میکنید؟ میتونید از شی Process ساخته شده استفاده کنید یا حداقل ID اون Process ها.

من کدهامو طبق گفته شما به صورت زیر تغییر دادم:

ProcessStartInfo prin = new ProcessStartInfo(@"C:\Program Files (x86)\Counter-Strike Source\cstrike.exe");
prin.WorkingDirectory = @"C:\Program Files (x86)\Counter-Strike Source";
Process Counter = Process.Start(prin);
Console.WriteLine("Process Start");
Console.Read();
Counter.Kill();
Console.WriteLine("Process Closed");
Console.Read();1
اما خطای زیر را میده در حالی که برنامه هنوز بازه:
113872

amin_sltny
جمعه 22 آذر 1392, 10:11 صبح
من کدهامو طبق گفته شما به صورت زیر تغییر دادم:

ProcessStartInfo prin = new ProcessStartInfo(@"C:\Program Files (x86)\Counter-Strike Source\cstrike.exe");
prin.WorkingDirectory = @"C:\Program Files (x86)\Counter-Strike Source";
Process Counter = Process.Start(prin);
Console.WriteLine("Process Start");
Console.Read();
Counter.Kill();
Console.WriteLine("Process Closed");
Console.Read();1
اما خطای زیر را میده در حالی که برنامه هنوز بازه:
113872

در واقع من بازی کانتر را اجرا می کنم و وقتی این باز اجرا میشه پروسس اولیش Cstrick ولی این پروسه خودش بسته میشه و پروسه ای به نام hl2.exe اجرا میشه برای همین نام پروسه ای که من دارم Cstrick واین پروسه بسته شده در نتیجه من باید hl2 را ببندم ولی چه طوری باید نام این پروسه را از توی پروسه های پیدا کنم. یه جواب کلی می خوام چون برای یه برنامه گیم نت می خوام و با خیلی از بازی ها این مشکل را دارم.
ممنون میشم کمکم کنید

plus
جمعه 22 آذر 1392, 16:00 عصر
اینطور که میگین با همون نام Process راحتر هست...اگه برای گیم نت میخواین تعداد بازی ها محدوده میتونید برای هر بازی ببینید که نام Process چی هست و از اون نام برای بستنش استفاده کنید...البته شاید راهی باشه که Process ای که توسط Process مورد نظر شروع میشه رو پیدا کرد ولی در مورد موضوع شما فکر کنم همون راه قبل ساده تر باشه.