Например в cmd можно запустить написав calc.exe
Реальный же его путь
c:\Windows\System32\calc.exe
Как в c# узнать путь calc.exe?
Запуск программы по названию его *.exe осуществляется благодаря переменным среды, где указаны директории для поиска исполняемых файлов.
Соотвественно, все что тебе надо- это пройти по переменным среды через Environment.GetEnvironmentVariable, а затем по директориям с файлами.
Но не все программы туда прописываются.
Есть варианты с реестром:
string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
{
foreach(string subkey_name in key.GetSubKeyNames())
{
using(RegistryKey subkey = key.OpenSubKey(subkey_name))
{
Console.WriteLine(subkey.GetValue("DisplayName"));
}
}
}
и с WMI:
ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
foreach(ManagementObject mo in mos.Get())
{
Console.WriteLine(mo["Name"]);
}
Однако, если программа не устанавливалась, а просто запускался какой-то EXE файл, то ты вряд ли найдешь где-нибудь запись о ней=> придется искать полным перебором всех дисков и директорий.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости