Re: Много непоняток с WinAPI (было: Logoff current user in Windows NT)

From
Demid ()
To
All
Date
2001-06-14T17:17:57Z
Area
SU.WINDOWS.NT.PROG
From: "Demid" <demid@pstu.edu>
Subject: Re: Много непоняток с WinAPI (было: Logoff current user in Windows NT)


"Victor" <VictorK@mastereye.com> wrote in message news:xn2W6.108$io1.533538@news...
>
> >
> > Все это можно, при условии, что EWX_FORCE хоть как-то работает.
> >
>
> Да работает он, работает. Проверь свой код.

Да вот он весь:

#include "stdafx.h"
#include "windows.h"
#include <assert.h>

int main(int argc, char* argv[])
{
 UINT uFlags = EWX_LOGOFF;
 OSVERSIONINFO VersionInfo;
 VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
 assert( GetVersionEx( &VersionInfo ) );
 assert( VersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT );

 if (VersionInfo.dwMajorVersion == 4)
  uFlags = uFlags | EWX_FORCE;

 if (VersionInfo.dwMajorVersion == 5)
  uFlags = uFlags | EWX_FORCE;

//  uFlags = uFlags | EWX_FORCEIFHUNG; -- пробовал и то и другое

 ExitWindowsEx(uFlags, 0xFFFFFFFF);
 return 0;
}


>
> >
> > Конкретнее - надо просканировать все Window Station и закрыть те из них,
> > которые принадлежат пользователю с определенным именем (независимо от
> того,
> > запущена ли программа на терминал-сервере или же на "отдельной" машине.
> > Причем, что самое смешное - не могу выполнить ни один из трех пунктов :(
>
> Я уже писАл раньше, что надо просто выгребать все активные сессии и потом
> через функцию WTSQuerySessionInformation проверять юзера.

O'key, будем пробовать.
Но все равно непонятно, почему EnumWindowStations фигню enumerat-ит.

> > Хотелось сделать универсально. Да и надо SDK качать, чтобы использовать
> > эти функции (штатно в MSVC их нету).
> >
>
> Штатно в Студии дока, хедера и либы урезаные. Если работать надо не
> по-детски :-)
> без Platform SDK никуда не денешься, это проверено.

Ладно.




--- ifmail v.2.15dev5
 * Origin: AIC Ltd. (2:5020/400)