VB.Net Process.Start - 动词

问题描述 投票:0回答:1

我希望我的vb.net程序启动记事本并提升凭据,但是没有提示,程序就会打开。

    Dim process As System.Diagnostics.Process = Nothing
    Dim processStartInfo As System.Diagnostics.ProcessStartInfo
    processStartInfo = New System.Diagnostics.ProcessStartInfo()
    processStartInfo.FileName = "notepad.exe"
    processStartInfo.Verb = "runas"

    processStartInfo.Arguments = ""
    processStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal
    processStartInfo.UseShellExecute = True
    process = System.Diagnostics.Process.Start(processStartInfo)
vb.net process.start
1个回答
2
投票

那里有很多不必要的代码。当您每次只需要一个变量时,您将使用两行来声明和设置两个变量。当您可以将参数传递给构造函数并且还将三个属性设置为其默认值时,您将显式设置FileName属性。我把它剥离到最低限度:

Dim psi As New ProcessStartInfo("notepad.exe") With {.Verb = "runas"}
Dim proc = Process.Start(psi)

当我从一个新的WinForms应用程序运行该代码时,表单上只有一个Button,我按预期得到了一个UAC提示符。

© www.soinside.com 2019 - 2024. All rights reserved.