C # .NET বা C ++ এ .exe ফাইলের নামগুলি অনুসন্ধান করে আমি কীভাবে কিছু সক্রিয় প্রক্রিয়াটি মেরে ফেলতে পারি?
C # .NET বা C ++ এ .exe ফাইলের নামগুলি অনুসন্ধান করে আমি কীভাবে কিছু সক্রিয় প্রক্রিয়াটি মেরে ফেলতে পারি?
উত্তর:
দ্রুত উত্তর:
foreach (var process in Process.GetProcessesByName("whatever"))
{
process.Kill();
}
(প্রক্রিয়া নাম থেকে .exe ছেড়ে)
Contains("Spotify"))
সমস্ত দৃষ্টান্তকে মেরে ফেলে Spotify
। আমি একটি বিশেষ উদাহরণ হত্যা করতে চাই Spotify
।
আমার সমাধানটি হ'ল সমস্ত প্রক্রিয়া তালিকাভুক্ত করার জন্য প্রক্রিয়া.গেটপ্রসেস () ব্যবহার করুন।
আমার যে প্রক্রিয়াগুলি রয়েছে তা ধারণ করতে তাদের ফিল্টার করে আমি তারপরে প্রক্রিয়া.কিল () পদ্ধতি চালাতে পারি:
var chromeDriverProcesses = Process.GetProcesses().
Where(pr => pr.ProcessName == "chromedriver"); // without '.exe'
foreach (var process in chromeDriverProcesses)
{
process.Kill();
}
হালনাগাদ:
সেক্ষেত্রে যদি ( এসিঙ্ক এনুম্যুয়ালস ) async
থেকে কিছু কার্যকর সাম্প্রতিক পদ্ধতি ব্যবহার করতে চান তবে এটি পরীক্ষা করে দেখুন:C# 8
const string processName = "chromedriver"; // without '.exe'
await Process.GetProcesses()
.Where(pr => pr.ProcessName == processName)
.ToAsyncEnumerable()
.ForEachAsync(p => p.Kill());
দ্রষ্টব্য:
async
পদ্ধতি ব্যবহারের অর্থ এই নয় যে কোডটি দ্রুত চলবে, তবে কমপক্ষে এটি সিপিইউর সময় নষ্ট করবে না এবং অপারেশনগুলি করার সময় অগ্রভাগের থ্রেডটিকে ঝুলানো থেকে আটকাবে। যাই হোক না কেন, আপনি কোন সংস্করণটি চাইতে পারেন তা সম্পর্কে আপনার চিন্তা করা দরকার।
আপনি Process.GetProcesses()
বর্তমানে চলমান প্রক্রিয়াগুলি পেতে ব্যবহার করতে পারেন , তারপরে Process.Kill()
একটি প্রক্রিয়াটি মেরে ফেলতে।
আপনি এমএস ওয়ার্ডের একটি নির্দিষ্ট উদাহরণকে হত্যা করতে পারেন।
foreach (var process in Process.GetProcessesByName("WINWORD"))
{
// Temp is a document which you need to kill.
if (process.MainWindowTitle.Contains("Temp"))
process.Kill();
}
public void EndTask(string taskname)
{
string processName = taskname.Replace(".exe", "");
foreach (Process process in Process.GetProcessesByName(processName))
{
process.Kill();
}
}
//EndTask("notepad");
সংক্ষিপ্তসার : নামটিতে .exe রয়েছে তা বিবেচনাধীন, প্রক্রিয়াটি শেষ হবে। আপনার "প্রসেসের নাম থেকে ছাড়ুন। ছাড়ার দরকার নেই", এটি 100% কাজ করে।
.Replace(".exe", "")
উপরে ভোট উত্তর অনেক কম সংবর্ত এবং অপ্রয়োজনীয় কোড দিয়ে এই করতে হবে