Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.06.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
15-1239395408
Юрий
2009-04-11 00:30
2009.06.21
С Днём рождения ! 11 апреля 2009 суббота


2-1240930943
granddad
2009-04-28 19:02
2009.06.21
Методы контроля своевременного освобождения памяти


15-1239620213
ZeroDivide
2009-04-13 14:56
2009.06.21
Лицензионные фильмы


15-1239538451
Kerk
2009-04-12 16:14
2009.06.21
.Net Compact Framework


15-1239378087
Rouse_
2009-04-10 19:41
2009.06.21
И мне чтоль какую нибудь голосовалку сделать? :)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский