Как проверять процесс через оригинальное имя по файлу
Метод который получает исходное имя файла через процесс и сверяет его со списком процесс(а)ов. ( Это может быть List<string> и string array )
private static bool GetInternalNameProcess(Process p, string match)
{
string internalname = p.MainModule.FileVersionInfo.InternalName;
return internalname.ToLower().Equals(match.ToLower(), StringComparison.OrdinalIgnoreCase);
}
Создаю список массива string array процессов которые нужно проверять
string[] processes = new string[]
{
"GameExplorer", "GameList", "GameReport", "GameAnalyzer"
};
Создаю метод который запускает проверку по процессам и если находит совпадения с processes то даёт результат.
public static void Start()
{
foreach (Process proc in Process.GetProcesses())
{
if (GetInternalNameProcess(proc, processes.Contains(proc.ProcessName)) // тут получаю ошибку!
{
Console.WriteLine("Найдены совпадения: " + proc.ProcessName + "");
}
}
}
Ошибка CS1503 Аргумент 2: не удается преобразовать из "bool" в "string"
Как мне правильно реализовать проверку?
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Наверное так можно исправить ошибку
string.Contains() возвращает bool, а метод ждет string match
Можно сделать список
List<string> processes = new List<string>
{
"GameExplorer", "GameList", "GameReport", "GameAnalyzer"
};
Затем использовать Linq
if (processes.Any(x => x == proc.ProcessName || GetInternalNameProcess(proc, x)))
{
Console.WriteLine("Найдены совпадения: " + proc.ProcessName + "");
}