C++ 应用程序无法使用CreateWindowsStation创建windows工作站

C++ 应用程序无法使用CreateWindowsStation创建windows工作站,c++,windows,C++,Windows,我无法创建新的窗口站来运行我的应用程序 int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { wprintf(L"SetProcessWindowStation() before: %x\n", GetProcessWindowStation()); HWINSTA winSta = CreateWindowStation(_T("hiddenWinSta"), 0, 0, NULL); if (winSta == N

我无法创建新的窗口站来运行我的应用程序

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    wprintf(L"SetProcessWindowStation() before: %x\n", GetProcessWindowStation());
    HWINSTA winSta = CreateWindowStation(_T("hiddenWinSta"), 0, 0, NULL);
     if (winSta == NULL)
     {
        wprintf(L"CreateWindowStation() failed, error %d!\n", GetLastError());
     }else
        wprintf(L"CreateWindowStation() is OK!\n");
    SetProcessWindowStation(winSta);
    OpenDesktop(L"default", 0, FALSE, READ_CONTROL | WRITE_DAC | DESKTOP_WRITEOBJECTS | DESKTOP_READOBJECTS);
    wprintf(L"SetProcessWindowStation() after: %x\n", GetProcessWindowStation());
    system("pause");
    return 0;
}
我可以为新的windows工作站制作一个屏幕截图吗?请帮帮我:(


输出

SetProcessWindowStation() before: 30
CreateWindowStation() failed, error 5!
SetProcessWindowStation() after: 30
Press any key to continue . . .

错误5是
Error\u ACCESS\u DENIED

要创建的窗口站的名称。窗口站名称为 不区分大小写,不能包含反斜杠字符
\
。 仅允许Administrators组的成员指定名称。 如果
lpwinsta
NULL
或空字符串,系统将形成一个窗口站 使用调用进程的登录会话标识符命名。要获取此名称,请调用
GetUserObjectInformation
函数


因此,要么以管理员身份启动程序,要么不指定名称。

这是以管理员身份运行的吗?查看文档,只有管理员可以指定名称。不过,看起来您仍然可以解决这个问题。
lpwinsta [in, optional]