Например в 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 файл, то ты вряд ли найдешь где-нибудь запись о ней=> придется искать полным перебором всех дисков и директорий.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Недавно начал знакомится с VK API, пишу программу на C# (Windows Forms)Понадобилось использование метода "NewsFeed"
Всё остальное программа считает правильно но возникла проблема с выводом графикаА именно ZedGRaphControl не хочет его рисовать
Подскажите как при использовании Awesomium при клике на WebControl получить информацию о соответствующем HTML тэге? Например: при клике на текст получить...