CreateProcessAsUser的问题
在服务中运行RunProcess函数以CreateProcessAsUser启动一个进程,用任务管理器查看是以当前用户运行的。但是点击这个进程中的按钮调用SHBrowseForFolder时弹却不出来文件选择对话框。手动运行这个程序时就能弹出文件选择对话框。我觉得可能是CreateProcessAsUser的问题,谁能帮我看一下问题出在哪了。以下是代码。
BOOL RunProcess(LPTSTR lpImage)
{
BOOL bResult;
if(!lpImage)
{
return FALSE;
}
//RaisePrivleges();
HANDLE hToken;
if(!GetTokenByName(hToken,"EXPLORER.EXE"))
{
return FALSE;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
//LPVOID pEnv = NULL;
ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb= sizeof(STARTUPINFO);
si.lpDesktop = TEXT("winsta0\\default");
SECURITY_ATTRIBUTES sa;
sa.nLength=sizeof(sa);
sa.bInheritHandle=FALSE;
sa.lpSecurityDescriptor=NULL;
//CreateEnvironmentBlock(&pEnv, hToken, TRUE);
bResult= CreateProcessAsUser(hToken,NULL,lpImage,&sa,NULL, FALSE,NORMAL_PRIORITY_CLASS|CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
CloseHandle(hToken);
return bResult;
}
...全文
相关推荐
易语言-易语言CreateProcessAsUser
易语言CreateProcessAsUser源码
易语言CreateProcessAsUser源码
易语言CreateProcessAsUser源码。@资源源码站。
易语言-系统服务开发,解决交互桌面权限问题,穿透Session 0 隔离
一个比较完整的系统服务模板,使用WTSSendMessage(发送信息框)、CreateProcessAsUser(创建程序界面)来穿透Session 0 隔离,解决了交互桌面权限问题。
易语言CreateProcessAsUser源码-易语言
易语言CreateProcessAsUser源码
系统服务开发,解决交互桌面权限问题,穿透Session 0 隔离
一个比较完整的系统服务模板,使用WTSSendMessage(发送信息框)、CreateProcessAsUser(创建程序界面)来穿透Session 0 隔离,解决了交互桌面权限问题。@先锋小七。Tags:系统服务。


进程/线程/DLL
