VB.NET と .NET 3.5 を使用して VS2010 に 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:
何か案は?
ありがとう
アーニー