vb.net запись в реестр и проблема процесса

#vb.net #windows #process #registry

#vb.net #Windows #процесс #реестр

Вопрос:

Я создал приложение в vb.net для этого необходимо записать значение в реестр и проверить путь к файлам запущенного процесса, я изменил манифест и заставил приложение всегда запускаться от имени администратора с помощью этой строки

      <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
  

но у меня все еще есть проблема, приложение не может выполнить запись в реестр из-за «разрешений» и не может получить доступ к пути к файлу процесса

вот код, который я использую для поиска процесса

             Dim proces() As System.Diagnostics.Process
            proces = System.Diagnostics.Process.GetProcesses
            For Each PR As System.Diagnostics.Process In proces
                If PR.MainModule.FileName = silentpath Then           
            ' i get an error in the if line saying that a 32bit process can't acces to a 64bit process modules
                    PR.Kill()
                End If
            Next
  

и вот код, который я использую для записи в реестр

 My.Computer.Registry.CurrentUser.OpenSubKey("SOFTWAREMicrosoftWindowsCurrentVersionRun", True).SetValue("myapp", apppath)
  

Комментарии:

1. Работает ли это, если вы запускаете программу от имени администратора?

2. «requestedExecutionLevel» имеет отношение к элементу UAC (контроль учетных записей пользователей), который НЕ совпадает с разрешениями, назначенными через вашего сетевого администратора. Вы вошли на компьютер как пользователь с ролью «Администратор» в локальном окне?

3. я зарегистрирован как администратор, и я решил проблему с реестром, это зависело от ключа, который я хотел добавить, но проблема с процессом все еще существует, в основном, что я пытаюсь сделать, это найти идентификатор процесса, который выполняется из выбранного файла (путь к exe) и отключить его, я не хочу выполнять поиск по имени, поскольку, возможно, есть другие процессы с таким же именем