#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) и отключить его, я не хочу выполнять поиск по имени, поскольку, возможно, есть другие процессы с таким же именем