我与C++工作。 我在计算机上的多个用户配置文件中发现,我想写一个更改会话的服务。但我无法更改任何会话。我在下面的页面中找到了我用来更改用户会话的代码。无法更改用户的会话(用户切换)
http://msdn.microsoft.com/en-us/library/windows/desktop/aa379608(v=vs.85).aspx
我已经试过CreateProcessAsUser函数,而不是CreateProcessWithLogonW和CreateProcessWithTokenW。但它的所有函数都返回FALSE。 pi.hProcess和来自0xcccccccc的pi.hThread值。返回值错误代码87 程序在这里结束:
bResult = CreateProcessAsUser(
hToken,
NULL,
NULL,
NULL,
NULL,
FALSE,
NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE ,
NULL,
NULL,
&si,
&pi
);
RevertToSelf();
if (bResult && pi.hProcess != INVALID_HANDLE_VALUE)
{
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
}
if (pi.hThread != INVALID_HANDLE_VALUE){ //p.hTheread = 0xcccccccc
wprintf(L"%d\n", GetLastError()); // ErrorCode=87.
CloseHandle(pi.hThread);
}
运行此代码时,我想将代码添加到该服务的。
这已经有一段时间,但不会模仿需要在Windows管理权限? –
错误87是'无效参数'。显示你如何称呼这些功能。 – user58697
0xcccccccc意味着hThread从未赋值 – alain