我正在为“RunAs不同用户”创建一个小应用程序。应打开的文件(完整路径)存储在Listview中。
如果调用该程序 Do_RunAs(“C:\ Program Files(x86)\ Microsoft Office \ Office15 \ EXCEL.EXE”,“D:\ Run As Test \ Naming - Test.xlsx”) ......它正在运作
但是 如果调用该程序 调用Do_RunAs(“C:\ Program Files(x86)\ Microsoft Office \ Office15 \ EXCEL.EXE”,item.SubItems(1).Text) 我在EXCEL中收到此消息(参见链接图片) ...file is locked for editing by another user
以下是Do_RunAs的代码
Public Sub Do_RunAs(strApplication As String, strFilename As String)
Dim procStartInfo As New ProcessStartInfo
Dim procExecuting As New Process
With procStartInfo
.UseShellExecute = False
.Domain = strDomain
.UserName = strUserName
.Password = ConvertToSecureString(strPassword)
.Verb = "runas"
.LoadUserProfile = True
.FileName = GetShortPathName(strApplication)
.Arguments = GetShortPathName(strFilename).ToString
.WindowStyle = ProcessWindowStyle.Normal
End With
procExecuting = Process.Start(procStartInfo)
procExecuting.Close()
End Sub
作为我已经尝试过的论据
没有任何作用,总是同样的错误。
如果有人可以帮助我会很棒 - 非常感谢提前!
答案 0 :(得分:0)
我找到了这个问题的答案......也许有人需要它 在Sub-Next循环中调用此Sub。我在下次调用此Sub之前添加了一个WAIT函数
For i = 1 To 10
Call Do_RunAs("Excel.exe", "xy.xls")
Wait(3) 'wait 3 seconds
Next
这解决了问题