我在VS2010中使用VB.NET和.NET 3.5创建Windows应用程序。它是无形的,非常简单,假设它是一个字符串,它将“启动”剪贴板的内容。请注意,这不是ASP.NET,与网络应用无关。System.Diagnostics.Process无法从Windows Form App中的映射驱动器启动文件
这里是代码的心脏:
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:
任何想法?
感谢
厄尼
尝试\\ 000.000.00.00 \ temp \ test.txt。我的意思是尝试与IP。或服务器名称\\ myserver \\ test.txt –
驱动器映射是每个用户的属性。因此,如果它是由一个进程放在剪贴板上,而不是用另一个用户帐户运行,那么你将遇到问题。 –
@kostasch。好的建议谢谢。它确实工作,如果我做完整UNC所以这个工作:\\ fsservername \ Data \ Temp \ test.txt但L:\ Temp \ test.txt不,即使我然后复制/粘贴到确切的字符串开始>运行它工作正常(这是所有正在我的机器上完成EXE保存在我的C盘)。 – Ernie