请教一个关于CreateProcessAsUser的问题

发布时间:2024-01-11 00:20:34 来源:君肯网

CreateProcessAsUser function

Creates a new process and its primary thread. The new process runs in the security context of the user represented by the specified token.

Typically, the process that calls the CreateProcessAsUser function must have the SE_INCREASE_QUOTA_NAME privilege and may require theSE_ASSIGNPRIMARYTOKEN_NAME privilege if the token is not assignable. If this function fails with ERROR_PRIVILEGE_NOT_HELD (1314), use theCreateProcessWithLogonW function instead. CreateProcessWithLogonW requires no special privileges, but the specified user account must be allowed to log on interactively. Generally, it is best to use CreateProcessWithLogonW to create a process with alternate credentials.

CreateProcessAsUser Error:5老是弹出桌面

CreateProcessAsUser这个函数的第一个参数是一个用户令牌(Token),然后这个令牌会携带很多信息。

你说的报错那个问题,估计是因为Token中没有相关的GUI信息,貌似用LogonUser登录后需要做很多事情才能创建界面进程。

我当时的情况是:那个地方没有使用LogonUser,而是由System账户调用CreateProcessAsUser启动线程,然后是查找系统中的explorer.exe进程,然后获取该进程的Token,然后用该Token调用CreateProcessAsUser创建新进程。

还有就是环境变量的问题,可以参照如下:

if(!CreateEnvironmentBlock(&amplpEnvBlock, hUserToken, FALSE))

return GetLastError()

if(!CreateProcessAsUser(hUserToken, strExePath, NULL, NULL, NULL, FALSE, CREATE_UNICODE_ENVIRONMENT, lpEnvBlock, strDirectory, &ampsi, &amppi))

return GetLastError()

if(!DestroyEnvironmentBlock(lpEnvBlock))

return GetLastError()

C++ 创建的新进程不在任务管理显示,CreateProcessAsUser(“新的子进程 .exe”,….)

尊敬的华硕用户,您好!

根据您的描述。抱歉,不确定您的电脑具体型号及使用的系统版本。

1、建议您更新杀毒软件补丁并全盘查杀下病毒。

2、是否通过第三方软件优化系统文件之后出现这个提示的,尝试通过【控制面板】–windows update更新下系统补丁。

3、如果是运行某个特定程序软件时提示这个信息,建议您将该软件卸载删除。

希望以上信息能够对您有所帮助,谢谢。若以上回复还是没有帮您解决您的问题,欢迎您继续追问,您也可以登录华硕在线即时服务:http://www.asus.com.cn/support/ 进一步向工程师咨询,感谢您对华硕的支持和关注,祝您生活愉快!

CreateProcessAsUser失败,GetLastError 返回5怎么办

在规定时间强制关机 为了让你的孩子或你每天能正常休息,我们把关机时间设为晚上10点。首先用记事本建立一个批处理文件dsgj1.bat,输入“shutdown -s -f -t 10 -c “该休息了,晚安””语句(无外引号,内引号在英文状态下输入,下同)后保存。然后打开“开始→所有程序→附件→系统工具→计划任务”,执行“添加任务计划”命令,选择“下一步”后在“浏览”对话框中选择刚才创建的批处理文件dsgj1.bat,在任务运行时间对话框中选择“每天”、“下午10:00”,并在用户名及密码框中输入相应的用户密码即可(最好输入密码,否则计划任务可能无法运行)。 参数解释: 以上“shutdown”为定时关机或重启命令,“-s”为关闭本地计算机,“-f”为强制关闭正在运行的应用程序,“-t 10”为将用于系统关闭的定时器设置为 10 秒(不允许指定具体时刻),“–c” 后半角引号内为提示信息,可随意输入。 在规定时间段无法使用 强制关机后,如果孩子尝试重新开机,那么你可以设置在晚上10:00至次日8:00无法使用计算机。建立一个批处理文件如dsgj2.bat,加入“shutdown -s -f -t 10 -c “别再尝试了,在明早8:00以前你只能安心休息””语句后保存。 按上述方法在计划任务中执行“添加任务计划”命令,选择“下一步”,在“浏览”对话框中选择批处理文件dsgj2.bat,在任务运行时间对话框中选择“每天”、“下午10:00”;在用户名及密码框中输入相应的用户密码,在高级属性对话框中选择“计划”标签的“高级”按扭,选中“重复任务”复选框;选中“持续时间”单选按扭,并在其中输入10小时0分,选择每1分钟重复一次。现在到晚上10:00关机以后,如果重新开机,在不到一分钟时间内便会再次关机,只有至到次日早上8:00才能正常使用。 使用规定时间段后强制关机 为了保护孩子的眼睛,你可能想限定孩子每次使用电脑的时间不超过3小时,你可以用“计划任务”的命令行工具“Schtasks”来做到这一点。

BOOL RunProcess(int index)

{

LPCSTR lpImage = ProcessNames[index]

if(!lpImage)//全路径名 如C:\abc\a.exe

{

return FALSE

}

HANDLE hToken

if(!GetTokenByName(hToken,”EXPLORER.EXE”))

请教一个关于CreateProcessAsUser的问题

{

return FALSE

}

STARTUPINFO si

ZeroMemory(&ampsi, sizeof(STARTUPINFO))

si.cb= sizeof(STARTUPINFO)

si.lpDesktop = TEXT(“winsta0\\default”)

si.dwFlags = STARTF_USESHOWWINDOW

si.wShowWindow = SW_SHOWMAXIMIZED

BOOL bResult = CreateProcessAsUser(hToken,lpImage,NULL,NULL,NULL,

FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&ampsi,&amppProcInfo[index])

CloseHandle(hToken)

if(bResult)

{

OutputDebugString(“CreateProcessAsUser ok!\r\n”)

}

else

{

OutputDebugString(“CreateProcessAsUser false!\r\n”)

}

return bResult

}

以上就是关于请教一个关于CreateProcessAsUser的问题全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

更多相关资讯

CreateProcessAsUser function Creates a new process and its primary thr…
查看详情
CreateProcessAsUser function Creates a new process and its primary thr…
查看详情
CreateProcessAsUser function Creates a new process and its primary thr…
查看详情
相关文章
推荐游戏
风之谷
风之谷
游戏资讯 10.5M
下载
斗罗大陆3
斗罗大陆3
游戏资讯 566.9M
下载
冠军网球
冠军网球
游戏资讯 148.1M
下载
最佳炮手
最佳炮手
游戏资讯 68.1M
下载
如梦下弦月
如梦下弦月
游戏资讯 840.1M
下载
富甲封神传
富甲封神传
游戏资讯 263.0M
下载