【问题标题】:VB.NET - Pass command on command lineVB.NET - 在命令行上传递命令
【发布时间】:2012-05-29 16:16:31
【问题描述】:

我正在努力通过 Windows 计划任务将参数传递给 VB.NET 应用程序。它在 Visual Studio 中完美运行(通过项目属性传递命令行参数)。

如果我正在调用一个 VB6 应用程序,那么我将提供以下参数并且它可以工作:

运行:c:\progra~1\Test\Test.exe TestParameter 开始于:c:\progra~1\Test\

但是,如果我在 VB.NET 中提供相同的参数,则程序在尝试在 Form.Load 中创建类的实例时会引发异常:System.NullReferenceException 无法创建对象的实例。

我也尝试了以下方法:

运行:c:\program files\Test\Test.exe TestParameter 开始于:“c:\program files\Test\”

这次计划任务的状态变为“无法启动”。

在 VB.NET 程序的计划任务中指定命令行参数的正确方法是什么?

更新 我在这个网页上找到了解决方案:http://forum.codecall.net/topic/47568-reading-command-line-arguments-in-vbnet/。我仍然对为什么当我使用 8 位路径(即 progra~1)时程序不会创建对象的实例感到困惑

【问题讨论】:

  • Form.Load 中引发异常的代码行是什么?
  • objectUser=新类用户
  • 这是被解析的 c:\program files\Test\Test.exe 你需要引号 "c:\program files\Test\Test.exe"
  • @Blam,谢谢。引号有什么区别?
  • c:\program files\Test\Test.exe 中的空间正在被解析,因此 files\Test\Text.exe 被视为参数

标签: .net vb.net scheduled-tasks


【解决方案1】:

我有兴趣查看构造函数(或 Form_Load 事件)中的代码,您将在其中获取空引用异常。 progra~1 和“程序文件”之间的区别可能取决于其中的内容。

【讨论】:

  • ,谢谢。构造函数没有争论。它没有过载。
猜你喜欢
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2021-09-08
相关资源
最近更新 更多