如何获取启动 Visual Basic 应用程序的文件名和文件位置?

How to get filename and location of file that starts a visual basic application?

我在 Windows 8

我有一个播放 mp3 文件的 Visual Basic 2010 Express 应用程序。它有一个按钮,可以打开一个打开文件对话框 select 你想播放的 mp3。但是,我还将我的 vb 应用程序设置为 mp3 文件的默认打开器。当我双击任何 mp3 时,它会打开我的 vb 应用程序。但到目前为止,我还没有办法告诉 vb 应用程序启动它的 mp3 文件的名称和路径。该应用程序只是打开但不播放 mp3。

我需要一种方法让 vb 应用程序获取 mp3 的文件名和路径,以便播放器播放它。据我所知,mp3 文件被认为是 vb 应用程序的父文件,因为它导致它启动。

我发现这篇文章提供了一点帮助,但我仍然遇到一些奇怪的 public 成员布尔错误,这让我大吃一惊!

https://anoriginalidea.wordpress.com/2010/03/01/getting-the-parent-process-in-vb-net/

谢谢,如果你能以任何方式提供帮助。

如果您已正确设置文件关联,则无需处理进程名称。 (此外,启动您的应用程序的进程将是 Windows Explorer,因为它处理双击文件并启动关联的应用程序,因此获取进程名称对您没有帮助。) 文件名作为命令行参数传递给您的应用程序,因此您可以从那里检索它。

您可以使用 Environment.GetCommandLineArgs() 执行此操作,其中 returns 包含传递给您的应用程序的所有命令行参数的数组。数组的第一个元素(索引 0)是您的应用程序的完整路径和文件名,索引 1 处的项目是传递的第一个参数(应该是您的 .mp3 名称)等。

Dim TheFileName As String
Dim Vars As String()
Vars = Environment.GetCommandLineArgs
If Vars.Length > 1 Then
   TheFileName = Environment.GetCommandLineArgs(1)
   Me.Text = TheFileName    ' Just for demonstration
End If

如果您还没有正确设置您的文件关联以使其有效,您需要这样做。