当运行/ q参数时,VB .NET运行时没有窗体,也没有UAC

问题描述:

我很新的VB.NET,并且最近下载了MS Visual Studio Express 2012.我试图设计一个应用程序来替换我创建的VBScript并且无法找到我需要的两个主要设计阶段特征的答案,所以我提前为我的无知道歉。当运行/ q参数时,VB .NET运行时没有窗体,也没有UAC

我试图创建一个应用程序来编辑我支持的现有应用程序的配置参数。配置在文件系统和Windows注册表中都被编辑。

我正在寻找一种方法来传递“/ q”或“/ quiet”,并允许应用程序无声运行。我已经开发出足够多的程序来编辑表单中的选项并保存它们。我可以从“Windows窗体应用程序”的开始配置按钮运行代码(到目前为止只有显示选项的消息)。

我还需要确保在静默运行时应用程序不需要UAC提升。在原始VBScript中,我需要在编辑Windows注册表时提升UAC。

我知道用我目前的知识水平要求很多。但是我仍然处于设计阶段,想要快速学习,并且在我走得太远之前真的需要知道这是否可能。

如果原始应用程序需要UAC提升来编辑注册表,那么新的应用程序也会如此。访问级别是基于每个用户而不是每个应用程序的基础上的,因此除非您以不同的用户身份运行应用程序,否则您的新应用程序会遇到同样的问题。

至于不显示的形式运行,你需要编辑主要是这样的:

<STAThread()> _ 
Shared Sub Main() 
    ' Read the arguments  
    ' Starts the application. 
    if (argument == "/q" or argument == "/quiet") then 
     ' Edit the other program configurations here 
    else 
     Application.Run(New Form1()) 
    End if 
End Sub 

你可以调用version of Run(ApplicationContext) that doesn't show a form,但作为启动消息循环,你仍旧需要实际一些方法编辑其他程序的配置,可能是为了响应按键。

+0

这看起来像我正在寻找的,但我想这就是我的无知。我知道有一个Sub Main(我能找到的所有东西都说有一个)。我有的问题是在Visual Studio 2012中找到它来编辑它。老实说,我几乎希望我可以写意这个项目。我将Sub Main设置为启动对象,但即使显示了我在查找时遇到的所有文件。我可以创建它吗?我应该在哪里这样做? – 2013-02-10 05:23:47

+0

或者我应该创建它作为控制台应用程序并添加到Windows窗体中? – 2013-02-10 05:27:44

+0

谢谢!当我为它创建一个模块时,这确实很棒。我无法声明为共享,但功能很好。如何将我创建的布尔状态传递给表单或其他模块,我正在考虑放置这些函数。我想要得到这个功能来抑制错误和提示。 – 2013-02-10 09:12:34