Главная страница
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.011 c
15-1240173002
Юрий
2009-04-20 00:30
2009.06.21
С днем рождения ! 20 апреля 2009 понедельник


13-1124000957
cherrex
2005-08-14 10:29
2009.06.21
COM и .NET


15-1239804912
IvanIvan2
2009-04-15 18:15
2009.06.21
. PhysicalDriveN


2-1238238509
sYSeRROR
2009-03-28 14:08
2009.06.21
Агент для КОнтакта


4-1211580310
dev
2008-05-24 02:05
2009.06.21
как создать кнопку?