У меня есть метод из существующего проекта .NET Framework, который получает путь к браузеру по умолчанию в Windows из реестра и запускает его вызовом Process
:
string browser = "";
RegistryKey regKey = null;
try
{
regKey = Registry.ClassesRoot.OpenSubKey("HTTP\\shell\\open\\command", false);
browser = regKey.GetValue(null).ToString().Replace("" + (char)34, "");
if (!browser.EndsWith(".exe"))
browser = browser.Substring(0, browser.LastIndexOf(".exe") + 4);
}
finally
{
if (regKey != null)
regKey.Close();
}
ProcessStartInfo info = new ProcessStartInfo(browser);
info.Arguments = "\"" + url + "\"";
Process.Start(info);
Этот проект пытается настроить для кроссплатформенности, поэтому я переношу его на .NET Standard (1.2). Проблема в том, что я не уверен, что стандартные эквиваленты .NET соответствуют RegistryKey
и Process
(и ProcessStartInfo
). Конечно, для других платформ в этой системе может не быть реестра или какой-либо концепции «процессов». Итак, есть ли способ реализовать вышеуказанные функции в .NET Standard? (Или, возможно, это проблема X-Y, и я все делаю неправильно?)
Process.Start("https://www.google.com");
. Для этого не нужно заходить в реестр :) - person Lucas Trzesniewski   schedule 24.05.2017