Как получить список всех процессов запуска из реестра, используя C # на Windows 7 64 бит? - PullRequest
0 голосов
/ 16 декабря 2010

Привет, ребята, у меня странная проблема.

Я пытаюсь получить список всех запускаемых программ из реестра - LocalMachine, CurrentUser, подразделы Run, RunOnce, RunOnceEx. И после этого я могу получить список ссылок в папке автозагрузки

Для Win64 я обнаружил, что программы запуска находятся в этом ключе

LocalMachine / Программное обеспечение / Wow6432Node / Microsoft / Windows / CurrentVersion / Run

Проблема в этом коде, при запуске его я получаю список приложений, которые находятся в разных подразделах LocalMachine \ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Run вместо описанного ниже LocalMachine \ Software \ Microsoft \ Windows \ CurrentVersion \ Run

Это нормально?

 Microsoft.Win32.RegistryKey key;
 key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", false);

 foreach (string appName in key.GetValueNames()) 
 {
      try
      {
         MessageBox.Show(appName);
      }
      catch (Exception ex) 
      {

      }

 }

Я пытался использовать это решение WMI , но оно не получило все приложения для запуска. Вот почему я решил получить их вручную из реестра.

  1. Является ли этот скрипт правильным и почему он не делает то, что должен делать?
  2. Есть ли другой способ получить все приложения и процессы запуска?

    Спасибо

1 Ответ

0 голосов
/ 16 декабря 2010

В 64-битной операционной системе Windows есть 2 отдельных куста HKLM \ Software. Один для 64-битных приложений (HKLM \ Software) и один для 32-битных приложений (HKLM \ Software \ Wow6432Node при просмотре из 64-битных приложений. Он рассматривается как HKLM \ Software для 32-битных приложений ).

Если вы компилируете свое приложение .Net в формате MSIL или x64, вы можете получить доступ к 32-разрядному программному кусту, добавив Wow6432node в путь реестра.

В противном случае вы также можете скомпилировать как x86 и запустить в 32-битном режиме.

Надеюсь, эта помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...