Visual c++ 如何在不提示输入密码的情况下使用runas?
如何在我的代码中使用Visual c++ 如何在不提示输入密码的情况下使用runas?,visual-c++,Visual C++,如何在我的代码中使用runas,而不提示输入密码 SHELLEXECUTEINFO info = {0}; info.cbSize = sizeof(SHELLEXECUTEINFO); info.fMask = SEE_MASK_NOCLOSEPROCESS; info.lpFile = _T("IECapt.exe"); info.lpVerb = "runas"; info.lpParameters = _T("test"); info
runas
,而不提示输入密码
SHELLEXECUTEINFO info = {0};
info.cbSize = sizeof(SHELLEXECUTEINFO);
info.fMask = SEE_MASK_NOCLOSEPROCESS;
info.lpFile = _T("IECapt.exe");
info.lpVerb = "runas";
info.lpParameters = _T("test");
info.nShow = SW_HIDE;
if (ShellExecuteEx (&info))
{
WaitForSingleObject (info.hProcess, INFINITE);
}
如果您知道user和passwort,则可以使用
CreateProcessAsUser
。但是要注意,CreateProcess
和ShellExecute
做不同的事情
您也可以尝试使用
LogonUser[Ex]
+ImpersonateLoggedOnUser
+ShellExecuteEx
+restortoself
,但我不确定这是否有效。系统如何知道您尝试运行程序的用户的密码?@sharptooth如果帐户是本地的,则不需要密码。然而,我希望真正的答案是通过系统服务进行调解。Cygwin SSHD的实现值得研究Vista/7支持说明。如果您的应用程序要使用管理员权限运行,而当前用户不是管理员,则必须提供密码。否则,常规UAC提示将要求高程。