C++ 从C++;服务
我正在尝试创建一个Windows服务,它可以通过编程方式将我的用户登录到本地的Windows 10 pc,就像我直接在键盘前打字一样。(我希望能够远程初始化我的会话) 我正在使用LogonUser,它会正确返回,但我永远不会看到用户在任务管理器中显示为已登录 这就是我现在尝试的:C++ 从C++;服务,c++,windows,service,login,C++,Windows,Service,Login,我正在尝试创建一个Windows服务,它可以通过编程方式将我的用户登录到本地的Windows 10 pc,就像我直接在键盘前打字一样。(我希望能够远程初始化我的会话) 我正在使用LogonUser,它会正确返回,但我永远不会看到用户在任务管理器中显示为已登录 这就是我现在尝试的: BSINFO(L"Login User..."); HANDLE sessToken = nullptr; BOOL bRes = LogonUserW( L"TestUser", L"."
BSINFO(L"Login User...");
HANDLE sessToken = nullptr;
BOOL bRes = LogonUserW(
L"TestUser",
L".",
L"1234",
LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT,
&sessToken);
if (bRes)
{
PROFILEINFO profInfo;
ZeroMemory(&profInfo,sizeof(PROFILEINFO));
profInfo.dwSize = sizeof(PROFILEINFO);
profInfo.lpUserName = L"TestUser";
profInfo.lpServerName = L"";
bRes = LoadUserProfileW(sessToken,&profInfo);
if (!bRes)
{
DWORD dwError = GetLastError();
BSERROR(L"Error LoadUserProfileW. %d '%ls'", dwError, GetLastErrorW(dwError).c_str());
}
}
else
{
DWORD dwError = GetLastError();
BSERROR(L"Error login user. %d '%ls'", dwError, GetLastErrorW(dwError).c_str());
}
有什么办法吗 您是否试图从头开始重新实施远程桌面协议(即终端服务)?使用Windows终端会话涉及的内容要多得多。到目前为止,您拥有的是一个带有登录会话的令牌,我认为它与终端会话0(非交互式服务会话)关联。受信任的系统服务可以将这样一个令牌分配给另一个会话,例如,如果它需要在用户的交互会话中启动一个进程,但这与启动一个新会话并不相同。或多或少,我想开发自己的远程桌面,我想远程登录到我的计算机,然后我将流式传输我的桌面,一切正常,但我不知道如何远程交互式登录我的电脑:(
LogonUser
创建登录会话。这与创建交互控制台或终端会话无关,只是它返回的令牌将登录会话绑定到终端会话。有没有办法创建该控制台或交互桌面?