1

我在 VS2010 中有一个使用 VB.NET 和 .NET 3.5 的 Windows 应用程序。它无形且非常简单,假设它是一个字符串,它将“启动”剪贴板的内容。请注意,这不是 ASP.NET,与 Web 应用程序无关。

这是代码的核心:

Dim proc As New Process()
proc.StartInfo.FileName = strClipboard
proc.StartInfo.UseShellExecute = True
proc.StartInfo.CreateNoWindow = True
proc.Start()

多年来,它一直运行良好。如果用户有一个文件路径,比如说“c:\temp\file.txt”作为字符串保存在系统剪贴板中,他们可以运行这个应用程序(通常是通过将其分配给鼠标按钮),就像去开始>运行,粘贴文本,然后按 Enter。

最近,我们的系统发生了一些变化。不确定是什么,但我怀疑它与我们所有的新服务器配置更改和/或组策略有关,因为现在它不适用于任何映射的驱动器。

例如,这很好用:

C:\Temp\test.txt

但不是这个:

L:\Temp\test.txt

L 是我们本地文件服务器上的映射驱动器。我从异常中得到的错误只是它找不到文件:

System.ComponentModel.Win32Exception was caught
  ErrorCode=-2147467259
  Message=The system cannot find the path specified
  NativeErrorCode=3
  Source=System
  StackTrace:
       at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
       at VS10_Launch_Clipboard.Launch_Clipboard.Main() in C:\Users\user\Documents\Visual Studio 2010\Projects\VS10_Launch_Clipboard\VS10_Launch_Clipboard\Module1.vb:line 21
  InnerException: 

有任何想法吗?

谢谢

厄尼

4

1 回答 1

1

我测试了你的代码,它对我来说运行正常。我可以重现您的错误的唯一方法是使用未映射的驱动器运行它(更改为未映射的 z:\text.txt)。

确保运行程序的计算机在其计算机上具有指定的映射驱动器。仅仅因为程序可能驻留在服务器上并且服务器具有所需的映射驱动器,并不意味着运行该程序的客户端具有相同的映射驱动器。

于 2013-08-23T13:29:51.293 回答