我正在编写一个程序,该程序可以由另一个服务(在我们的控制下)或已登录的用户加载。程序需要知道窗口站是否是交互式的,以便显示对话框。我知道GetProcessWindowStation函数,但是此函数返回一个句柄。有没有办法找出来?

最佳答案

交互式窗口站始终为 winsta0 。因此,您需要获取窗口站名称才能确定它。这是一些伪代码:

wchar_t buffer[256] = {0};
DWORD length = 0;
GetUserObjectInformation(GetProcessWindowStation(), UOI_NAME, buffer, 256, &length);
if (!lstrcmp(buffer, "winsta0")) {
  // Interactive!
}

http://msdn.microsoft.com/en-us/library/ms687096(VS.85).aspx:

关于c++ - 如何知道所连接的windowstation是否是交互式的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1930343/

10-13 09:30