Имеется код, который должен завершать процесс, который был запущен из указанной папки:
namespace newkill
{
class Program
{
static void Main() { }
string path = @"C:\Users\" + Environment.UserName + @"\AppData\Roaming\WindowsW0W32\";
public static void KillProcesses(string path)
{
Process.GetProcesses() // получаем все процессы
.Where(p => CheckIfProcessFileEquals(p, path)) // берем только те, в которых пути к файлу совпадают
.ToList()
.ForEach(p => p.Kill()); // убиваем каждый
}
private static bool CheckIfProcessFileEquals(Process process, string path)
{
try
{
return process.MainModule.FileName.Equals(path, StringComparison.InvariantCultureIgnoreCase); // сравниваем пути, инорим кейс
}
catch (Win32Exception)
{
return false; // если MainModule недоступен - скипаем
}
}
}
}
Файл запущен именно из этой папки - C:\Users\" + Environment.UserName + @"\AppData\Roaming\WindowsW0W32\
но после выполнения программы процесс не убивается. Что может быть не так? Версия .NET 3.5
У вас выполниться ровно то, что написано в Main
:
static void Main() { }
Т.е ни-че-го.
Исправляйте:
static void Main()
{
var path = @"C:\Users\" + Environment.UserName + @"\AppData\Roaming\WindowsW0W32\file.exe";
KillProcesses(path);
}
Так же советую получать путь к AppData
с помощью Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
и использовать Path.Combine()
для конкатенации пути к файлу:
static void Main()
{
var path = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"Roaming",
"WindowsW0W32",
"file.exe");
KillProcesses(path);
}
У меня проблема с парсингом даты из строки в Datetime формат, когда я использую, напр01
С помощью каких библиотек Вы работаете в ASPNet Core с PostgreSQL?