У меня есть приложение Windows в VS2010 с использованием VB.NET и .NET 3.5. Он бесформен и очень прост, он «запустит» содержимое буфера обмена, считая его строкой. Обратите внимание, что это не ASP.NET и не имеет ничего общего с веб-приложением.System.Diagnostics.Process не удалось запустить файл с Mapped Drive в приложении Windows Form
Вот сердце код:
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 НЕ ИМЕЕТ, что если я затем скопирую/вставлю эту точную строку в start> run он работает нормально (все это делается на моей машине с сохранением EXE на моем диске c). – Ernie