我需要维护一个旧的VB6应用程序。
在应用程序功能中是对CreateProcessWithLogonW的调用,它在Windows 10上运行时无效(但在Windows 7上运行正常)。
我通过拨打Err.LastDllError
收到的错误代码是错误代码740 ,我认为这与“请求的操作需要提升。”有关。 UAC在我正在运行的Win 10机器上被禁用,因此我不确定这里的问题是什么?
有人有这方面的经验吗?非常感谢任何帮助!
令我感到困惑的是,它在Win7上运行时没有任何问题。
代码示例如下:
这是函数声明:
Private Declare Function CreateProcessWithLogon Lib "Advapi32" Alias "CreateProcessWithLogonW" ( _
ByVal UserName As Long, _
ByVal domain As Long, _
ByVal Password As Long, _
ByVal dwLogonFlags As Long, _
ByVal ApplicationName As Long, _
ByVal strCommandLine As Long, _
ByVal dwCreationFlags As Long, _
ByVal lpEnvironment As Long, _
ByVal strCurrentDirectory As Long, _
ByRef lpStartupInfo As STARTUPINFO, _
ByRef lppiProcessInfo As PROCESS_INFORMATION) As Long
这是函数调用
CreateProcessWithLogon(StrPtr(UserName), StrPtr(domain), StrPtr(Password), _
LOGON_WITH_PROFILE, StrPtr(ApplicationName), StrPtr(strCommandLine), _
CREATE_DEFAULT_ERROR_MODE Or CREATE_NEW_CONSOLE Or CREATE_NEW_PROCESS_GROUP, _
ByVal 0&, StrPtr(strCurrentDirectory), suiStartUpInfo, piProcessInfo)