Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.21;
Скачать: CL | DM;

Вниз

Как вывести пользователя из системы?   Найти похожие ветки 

 
12   (2009-04-11 17:11) [0]

т.е. то, что делает Диспетчер задач, когда выбираем закладку Пользователи, выбираем пользователя(НЕ СЕБЯ!), и кликаем по кнопке Выйти из системы.

Простите, что сюда, по моему тут больше народу сидит :)


 
12 ©   (2009-04-14 09:05) [1]

никто не знает?
думал обойдусь, нет похоже..


 
Юрий Зотов ©   (2009-04-14 10:27) [2]

ExitWindowsEx


 
Юрий Зотов ©   (2009-04-14 10:32) [3]

Плюс CreateProcessAsUser, конечно.


 
12 ©   (2009-04-14 10:56) [4]

логично
надо попробовать
спасибо


 
12 ©   (2009-04-14 15:32) [5]

Ситуация такова:
следуя логике, достаточно выполнить что-то от имени того пользователя.
пишу:

function CreateProcessWithLogonW(
   user:pwidechar;
   domain:pwidechar;
   passw:pwidechar;
   flags: DWORD;
   lpApplicationName: PwideChar;
   lpCommandLine: PwideChar;
   dwCreationFlags: DWORD;
   lpEnvironment: Pointer;
   lpCurrentDirectory: PWideChar;
   const lpStartupInfo: TStartupInfo;
   var lpProcessInformation: TProcessInformation)
:BOOL; stdcall;

implementation

{$R *.dfm}
function CreateProcessWithLogonW; external \\\"advapi32.dll\\\" name \\\"CreateProcessWithLogonW\\\";

procedure TForm1.Button1Click(Sender: TObject);
var
 SI : TStartupInfo;
 PI : TProcessInformation;
 cmd: widestring;
begin
 ZeroMemory(@SI, SizeOf(SI));
 SI.cb:=SizeOf(SI);
 if CreateProcessWithLogonW(
        PWideChar(widestring(\\\"Ïåòð\\\")),
        nil,
        PWideChar(widestring(\\\"12345\\\")),
        0,
        nil,
        PWideChar(widestring(\\\"c:\\\\logoff.exe\\\")),
        CREATE_DEFAULT_ERROR_MODE,
        nil, nil, SI, PI) then
 Application.Terminate()
   else
 Showmessage(\\\"error\\\");


c:\\\\logoff.exe - получен из


program logoff;
{$APPTYPE CONSOLE}
uses
 Windows;
begin
ExitWindowsEx(EWX_LOGOFF,0);
end.


и не получается ничего хорошего.
висит черная консоль с caption = c:\\\\logoff.exe, пользователь из списка не пропал, правда статус поменялся с Активен на Отключен, его процессы остались..
А taskmanager убирает его из списка, и процессы завершает.
Можно, конечно, пробежать по процессам и их прибить. Но а как сделать не Отключен, а вообще чтоб не было?
(сам когда запускаю c:\\\\logoff.exe, как и положено, все завершается, перехожу к вводу пароля, к входу в систему)


 
Eraser ©   (2009-04-14 15:35) [6]

> [0] 12   (11.04.09 17:11)

возможно спасет WTSLogoffSession.


 
12 ©   (2009-04-14 15:56) [7]

оказывается все можно решить смешнее..
logoff.exe {№сесиии}

правда, будет время, надо будет разобраться


 
12 ©   (2009-04-14 16:03) [8]

в смысле, тот logoff, который в system32 лежит


 
Клоака   (2009-04-15 00:26) [9]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2009.06.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
2-1241521321
Леша
2009-05-05 15:02
2009.06.21
Обновление одной записи.


15-1239947130
@!!ex
2009-04-17 09:45
2009.06.21
Распределение приоритетов для доустпа к сетевому каналу


4-1211293971
Vikindos
2008-05-20 18:32
2009.06.21
Считать название параметра из реестра


2-1241037428
бульдозер
2009-04-30 00:37
2009.06.21
как зная ID процесса получить хендл окна этого процесса


15-1239690431
начинающий
2009-04-14 10:27
2009.06.21
Лечение вирусов на NTFS-разделах