CreateProcessWithLogonW win7/8 下返回 87错误为什么?

jimicao 2013-05-04 02:22:21
STARTUPINFOEX StartupInfoex={0};
StartupInfoex.StartupInfo.cb=sizeof(STARTUPINFOEX);
StartupInfoex.StartupInfo.dwFlags=STARTF_USESHOWWINDOW;
StartupInfoex.StartupInfo.wShowWindow=SW_NORMAL;
PROCESS_INFORMATION ProcessInfo={0};

//取得1个条目 属性链表的大小
SIZE_T cbAListSize=0;
InitializeProcThreadAttributeList(NULL,1,0,&cbAListSize);


//初始化属性链表
StartupInfoex.lpAttributeList=(PPROC_THREAD_ATTRIBUTE_LIST)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,cbAListSize);
InitializeProcThreadAttributeList(StartupInfoex.lpAttributeList,1,0,&cbAListSize);

HANDLE hParent=OpenProcess(PROCESS_ALL_ACCESS,FALSE,GetCurrentProcessId());
UpdateProcThreadAttribute(StartupInfoex.lpAttributeList,0,PROC_THREAD_ATTRIBUTE_PARENT_PROCESS,&hParent,sizeof(hParent),NULL,NULL);

CString strtmp=L"C:\\Windows\\System32\\CMD.EXE";
CreateProcessWithLogonW(L"administrator",NULL,L"123456",LOGON_WITH_PROFILE,NULL,strtmp.GetBuffer(),CREATE_UNICODE_ENVIRONMENT|EXTENDED_STARTUPINFO_PRESENT,NULL,NULL,&StartupInfoex.StartupInfo,&ProcessInfo))



以上代码:最后一句 如果 删除 |EXTENDED_STARTUPINFO_PRESENT 就能正常运行,可是我要求创建的进程,要能继承父进程的一此权限,比哪以管理员权限运行程序,其创建的子进程也是以管理员权限运行


上述程序,运行后提示87错误!!请高手指点,谢谢

...全文
167 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjchilli 2013-05-06
  • 打赏
  • 举报
回复
87是参数不合法,是不是哪个参数的问题. EXTENDED_STARTUPINFO_PRESENT 0x00080000 The process is created with extended startup information; the lpStartupInfo parameter specifies a STARTUPINFOEX structure. Windows Server 2003 and Windows XP: This value is not supported.
jimicao 2013-05-06
  • 打赏
  • 举报
回复
难道没有高手了。
jimicao 2013-05-04
  • 打赏
  • 举报
回复
帮我这段代码运行了试下呢》

15,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧