MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Как правильно получить значение пути для исполняемого файла"
Answer 872861
Очевидно, тот ключ реестра, который вы получаете, содержит не путь к файлу, а полную командную строку (с аргументами), причем пути указываются относительно системного каталога. Попробуйте пропустить через такой метод:
static string GetExePath(string commandline) { string exepath; int ind1 = commandline.IndexOf('"'); int ind2 = commandline.IndexOf('"', ind1 + 1); if (ind1 < 0 && ind2 < 0) //если в строке нет кавычек, путь должен быть до первого пробела { ind1 = 0; ind2 = commandline.IndexOf(' '); if (ind2 < 0) ind2 = commandline.Length; } else //если есть кавычки - путь между первой парой кавычек { ind1 += 1; } exepath = commandline.Substring(ind1, ind2 - ind1); if (!System.IO.Path.IsPathRooted(exepath)) { exepath = System.IO.Path.Combine(Environment.SystemDirectory, exepath); } return exepath; }
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.