我正在编写一个启动程序,当我开始启动该过程时,我得到“目录名无效”错误。以下是启动该过程的代码:
Const DEBUG_ROOT = _
"Z:\Kiosk_JC\KioskSignIn.root\KioskSignIn\KioskSignIn\KioskSignIn\bin\Debug"
Dim oKiosk As New System.Diagnostics.Process
oKiosk.StartInfo.UserName = oEnc.Decrypt(Username)
oKiosk.StartInfo.Password = oEnc.DecryptSecure(Password)
oKiosk.StartInfo.Domain = oEnc.Decrypt(Domain)
''// The AddBS function appends a '\' to the passed string if it is not present
oKiosk.StartInfo.WorkingDirectory = AddBS(DEBUG_ROOT)
oKiosk.StartInfo.FileName = "KioskSignIn.exe"
oKiosk.StartInfo.UseShellExecute = False
Dim proc As Process = Nothing
proc = System.Diagnostics.Process.Start(oKiosk.StartInfo)
我在另一个问题上看到我需要设置WorkingDirectory(在我开始搜索之前我收到了错误)。即使我有这个属性设置,我仍然得到错误。有什么想法吗?
我还应该注意我的Z:\是我网络上的一个。我有一个函数可以解析UNC的路径。当我在DEBUG_ROOT上运行此函数时,我得到了同样的错误。
我尝试将应用程序移动到c:\ kiosk。结果相同。我以我模仿的用户身份登录,因此我可以访问所有共享和文件。
以下是链接,由于某种原因,URL格式化需要在指定链接后使用所有文本:
答案 0 :(得分:2)
映射的驱动器是每个用户。您可能正在与其他用户一起开始此过程。
答案 1 :(得分:0)
听起来这个过程无法看到Z:驱动器或没有安全访问权限。该应用运行的用户上下文是什么?也许Z:驱动器在这种情况下不可用。
答案 2 :(得分:0)
我得到了和你一样的错误。很可能用于运行进程的用户无权访问指定的资源(exe文件)
尝试将您的exe移动到其他位置和/或授予您的用户对该文件的访问权限。