Vb.net 从VB应用程序启动RDP时连接文件无效(有些工作,有些不工作)

Vb.net 从VB应用程序启动RDP时连接文件无效(有些工作,有些不工作),vb.net,vb.net-2010,shell-exec,rdp,Vb.net,Vb.net 2010,Shell Exec,Rdp,我有一个VB Express 2010应用程序,允许用户从数据库中选择我们管理的酒店。这是一个access数据库。然后显示酒店的所有信息 一切正常。除了指向RDP的链接。所有RDP都存储在共享网络驱动器上的公共根文件夹中。每个列的文件路径都是数据库中的。我添加了一个标签,以测试是否提取了正确的文件路径。然后我隐藏了标签,并使用其文本属性调用RDP会话。大多数连接只是启动RDP,但有人说 指定的name.RDP的最后一部分连接文件无效 下面是一些代码: RDPtext是一个标签,用于显示何时不隐藏

我有一个VB Express 2010应用程序,允许用户从数据库中选择我们管理的酒店。这是一个access数据库。然后显示酒店的所有信息

一切正常。除了指向RDP的链接。所有RDP都存储在共享网络驱动器上的公共根文件夹中。每个列的文件路径都是数据库中的。我添加了一个标签,以测试是否提取了正确的文件路径。然后我隐藏了标签,并使用其文本属性调用RDP会话。大多数连接只是启动RDP,但有人说

指定的name.RDP的最后一部分连接文件无效

下面是一些代码:

RDPtext是一个标签,用于显示何时不隐藏从数据库中提取的文件路径

 If RDPtext.Text = "" Then
        MessageBox.Show("This Property Uses A Different Connection Method" & vbCrLf & "Check SHAREPOINT DOCUMENTATION for more info.", "Site Does Not Use RDP")
 Else
        Shell("C:\Windows\System32\mstsc.exe " & RDPtext.Text, vbMaximizedFocus)
 End If
文件路径都是相同的文件夹,只是不同的RDP。路径可能是

S:\shared\MyProgram\RDPs\NAMEofRDP.RDP

再次出现一些工作和一些抛出错误。

尝试以下操作,而不是shell:

Process.Start("C:\Windows\System32\mstsc.exe", RDPtext.Text)
如果需要,您可以继续使用shell,但必须执行以下操作才能使其正常工作:

Shell("C:\Windows\System32\mstsc.exe """ & RDPtext.Text & """", vbMaximizedFocus)

我会检查文件:IF system.io.file.existsRDPtext.Text然后。。。。也许映射有问题,或者有一点细微的差异不容易通过视觉检测出来。您是否尝试过手动使用RDP文件?可能是一个旧版本,不适用于当前客户端。感谢您的回复。当您在程序外单击RDP时,它工作正常。至于路径,我按住SHIFT键并单击“复制为路径”,然后将其粘贴到access数据库中,当然删除了引号。S:\MyProgram\RDP的\Hanover TS.RDP啊,问题是空格。我打赌它对那些名字中没有空格的人有效,而对其他人无效。如果这是真的,请告诉我。我现在看到您使用shell,请尝试改用process.start。这应该可以解决你的问题。仍然抛出相同的异常:SHELL命令和额外的工作!!!你太棒了!但现在我的最后一个问题是为什么?为什么会这样?顺便说一句,我很想给你一张赞成票。我快15岁了。我欠你的!你可能需要用Process.Start做所有额外的引号。这是因为您正在构建一个字符串以发送到shell,而shell只调用另一个exe。然后,该exe将其后面的所有内容作为参数。每个空格开始另一个参数,除非您使用qoutes.IE,Text.exe 1 c:\1/2/2013给出test.exe 3个参数。它会认为Text.exe 1 c:\somethings 1/2/2013有5个参数。为了解决这个问题,我们在2013年1月2日做了Text.exe 1c:\something other,现在又回到了3。令人惊叹的非常感谢!