Там много ненужного кода.Вы используете две строки для объявления и установки двух переменных, когда вам нужна только одна.Вы устанавливаете свойство FileName
явным образом, когда вы можете передать аргумент конструктору, и вы также устанавливаете три свойства в их значения по умолчанию.Я просто сократил его до минимума:
Dim psi As New ProcessStartInfo("notepad.exe") With {.Verb = "runas"}
Dim proc = Process.Start(psi)
Когда я запустил этот код из нового приложения WinForms, набрав всего Button
в форме, и я получил приглашение UAC, как и ожидалось.