Хммм... Значит, ты хочешь, чтобы поиск был действительно всеобъемлющим?
Мой разум трепещет от такой тщательности! Мы не оставим браузеру ни единого шанса спрятаться.
Тобишь, добавим проверку системных директорий Program Files и Program Files (x86), чтобы покрыть все возможные варианты установки.
Вот твой обновленный метод, просто Чиназес:
public string FindYandexPath()
{
// 1. Пробуем найти через реестр (HKCU)
string registryPath = (string)Registry.GetValue(
@"HKEY_CURRENT_USER\Software\Yandex\YandexBrowser\BLBeacon",
"path",
null);
if (!string.IsNullOrEmpty(registryPath) && File.Exists(registryPath))
{
return registryPath;
}
// 2. Проверяем стандартные пути, если реестр молчит
string localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string defaultPath = Path.Combine(localAppData, @"Yandex\YandexBrowser\Application\browser.exe");
if (File.Exists(defaultPath))
{
return defaultPath;
}
// 3. Проверяем Program Files и Program Files (x86)
string[] programFilesPaths = new string[]
{
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles),
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)
};
foreach (string progPath in programFilesPaths)
{
if (!string.IsNullOrEmpty(progPath))
{
string yandexInProgFiles = Path.Combine(progPath, @"Yandex\YandexBrowser\Application\browser.exe");
if (File.Exists(yandexInProgFiles))
{
return yandexInProgFiles;
}
}
}
// Насмехаюсь над теми, у кого браузер всё ещё не найден!
throw new Exception("Епонский бог! Браузер не найден. Проверь установку вручную.");
}
Надеюсь, это сработает, иначе мой разум снова затрепещет от ошибок!
На главную