Главная страница
    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.46 MB
Время: 0.005 c
15-1239973429
12
2009-04-17 17:03
2009.06.21
Сколько в tMemo можно сунуть информации?


15-1239568612
Юрий
2009-04-13 00:36
2009.06.21
С днем рождения ! 13 апреля 2009 понедельник


11-1201597213
Elec3C
2008-01-29 12:00
2009.06.21
Баг ListBox.DoubleBuffer := True


2-1240998993
AG
2009-04-29 13:56
2009.06.21
Delphi, матрицы


2-1241610748
dis12345
2009-05-06 15:52
2009.06.21
из какой ячейки вызван DblClick





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский