Гайд Получение названия и пути к файлам из автозагрузки

  • 702
  • 2
  • 237
В инете не нашел готового варианта по этому сделал свой (Не идеальный)
Если у кого есть способ лучше поделитесь в обсуждениях

C#:
const string pathRegistryKeyStartup =
            "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";

using (RegistryKey registryKeyStartup = Registry.CurrentUser.OpenSubKey(pathRegistryKeyStartup, true))
{
    string[] names = registryKeyStartup.GetValueNames();
    foreach (string name in names) {
        string value = registryKeyStartup.GetValue(name).ToString();
        try
        {
            var result = Regex.Split(value, @" (?=\w:\\)", RegexOptions.IgnoreCase);
            foreach (var item in result)
            {
                string newStr = item;
                newStr = newStr.Trim('"');

                int index = newStr.LastIndexOf("\" ");
                if (index >= 0)
                    newStr = newStr.Substring(0, index);
                int index2 = newStr.LastIndexOf(" -");
                if (index2 >= 0)
                    newStr = newStr.Substring(0, index2);
                newStr = newStr.Trim(' ');
                newStr = newStr.Trim(' ');
                if (!File.Exists(newStr))
                {
                    Console.WriteLine(name + " путь: " + newStr + " не найден");
                }
            }
        }
        catch
        {

        }
    }
}
 
  • 702
  • 2
  • 237
Вариан более лучше:
const string pathRegistryKeyStartup =
            "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";

using (RegistryKey registryKeyStartup = Registry.CurrentUser.OpenSubKey(pathRegistryKeyStartup, true))
{
    string[] names = registryKeyStartup.GetValueNames();
    foreach (string name in names)
    {
        string value = registryKeyStartup.GetValue(name).ToString();
        string regString = value.Replace("\"", "");

        regString = regString.ToLower();

        int splitIndex = regString.IndexOf(".exe");

        if (splitIndex != -1)

        {

            splitIndex += ".exe".Length;

            string executable = regString.Substring(0, splitIndex);

            string parameters = regString.Substring(splitIndex, regString.Length - splitIndex);

        }
    }
}
 
Сверху Снизу