My.Application.CommandLineArgs - 无法打开文件

时间:2009-08-16 21:24:45

标签: vb.net

我引用了这个帖子及其指向的网站: Opening a file in my application from File Explorer

截至目前,我无法让My.Application.CommandLineArgs正常工作。任何时候我选择一个文件在我的程序中打开我得到一个Windows错误强制程序关闭。我只想从My.Application.CommandLineArgs获取文件路径并将其传递给一个函数,然后解析文件(各种扩展的文本文件,即使它与我的程序没有关联)并显示内容RichTextBox的。 我打开文件的功能已经完成并且有效,但是如果我尝试在文件上使用My.Application.CommandLineArgs,程序会立即崩溃。 这是我正在尝试作为测试的代码:

Private Sub ParseCommandLineArgs()
    If My.Application.CommandLineArgs.Count > 0 Then
        MessageBox.Show(My.Application.CommandLineArgs(0))
    Else
        MessageBox.Show("No args")
    End If
End Sub

如果我只是打开应用程序,我会收到消息框告诉我没有提供args,如果我尝试使用“打开”我的应用程序来处理我的应用程序崩溃的任何文件。我在form_load期间调用了这个函数。

3 个答案:

答案 0 :(得分:1)

我担心这是一个经典的逐个错误,VB.NET Arrays和Collections从元素0开始,所以使用:

 MessageBox.Show(My.Application.CommandLineArgs(0))

答案 1 :(得分:1)

在应用程序的属性中,选择Debug side-tab,在提供的输入框中添加一些命令行参数,然后在IDE中运行该程序。这样您就可以准确地获得导致应用程序崩溃的错误。

答案 2 :(得分:0)

通过Open With上下文菜单选项实时调试要调用的程序是很困难的,因为它是由操作系统直接启动的。

了解您收到的错误文本可能会有所帮助。可能是当Windows通过Open With调用.NET应用程序时,它根本不会填充My.Application.CommandLineArgs。或者它可能会将文件名放在集合中。你可以试试

For Each s As String In My.Application.CommandLineArgs
    MessageBox.Show(s)
Next

确切了解有多少物品及其价值。在任何情况下,我都会搜索一些Google如何截取使用Open With发送给应用程序的上下文参数。

相关问题