Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Завтра :

День славянской письменности и культуры


Перегрузить-выключить комп
На страницу 1, 2  След.

Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
Anatoly
Гость







СообщениеПт, 20-Сен-2002 10:08    Заголовок сообщения: Перегрузить-выключить комп
Цитата

Rolling Eyes Господа! Как программно перегрузить-выключить комп. Знаю что есть какаято функция, но не могу ее найти.
В начало
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеПт, 20-Сен-2002 13:18 
Цитата

ExitWindowsEx
_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Alex
Гость







СообщениеПт, 22-Ноя-2002 20:39 
Цитата

ExitWindowsEx(EWX_FORCE or EWX_SHUTDOWN, 0);
В начало
Пол:Муж Dave
Модератор


Возраст: 36
Знак зодиака: Лев
Зарегистрирован: 08.08.2002
Сообщения: 1208
Откуда: Yaroslavl
СообщениеПн, 25-Ноя-2002 10:12 
Цитата

Под NT это не прокатит...
Точнее этого недостаточно...
(там надо еще и права на выполнение подобных действий получить)

_________________
Не убегай от снайпера - умрешь уставшим !
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеПн, 25-Ноя-2002 14:30 
Цитата

Да этой ветке в прошлом году сто лет исполнилось. Если автор не разобрался, он бы уже спросил или уточнил
_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
VaDima
Энтузиаст


Возраст: 36
Знак зодиака: Овен
Зарегистрирован: 18.12.2002
Сообщения: 369
Откуда: Из лесу, вестимо
СообщениеСр, 25-Дек-2002 21:50 
Цитата

ДЛЯ NT:
Код:
if OS=WinNT then begin
  if not OpenProcessToken(GetCurrentProcess(), ADJUST_PRIV, Token) then
    Error:=Error or 4;

  if not LookupPrivilegeValue(nil, SHTDWN_PRIV,TokenPriv.Privileges[0].Luid) then
    Error:=Error or 8;

  TokenPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
  TokenPriv.PrivilegeCount := 1; 
  if not AdjustTokenPrivileges(Token, false, TokenPriv, PRIV_SIZE,Dummy, Len) then
    Error:=Error or 16;
  InitiateSystemShutDown (Machine,Text,FTimeOut,Force,Reboot);
end;


чего не хватает, подпатчь сам :)

_________________
Он умудрялся на бегу прописать дырочку в снегу. (Веня Дркин)
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеСр, 25-Дек-2002 22:39 
Цитата

Ну, этот невесть откуда выдранный кусок кода нужно серьезно поточить напильником для употребления:
Код:

var
  t: _Token_Privileges;
  ht: cardinal;
  rl: cardinal;
...
      if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ht) then begin
        LookupPrivilegeValue(nil, 'SeShutdownPrivilege', t.Privileges[0].Luid);
        t.PrivilegeCount:=1;
        t.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
        AdjustTokenPrivileges(ht, false, t, 0, nil, rl);
      end;
      ExitWindowsEx(EWX_FORCE or EWX_REBOOT, 0);

Так будет работать в любой операционке - и 9х, и NT/2000/XP
А InitiateSystemShutDown вообще не в тему.
P.S. Замечания по поводу древности ветки остаются в силе :)

_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж 13-ый
Администратор


Возраст: 35
Знак зодиака: Близнецы
Зарегистрирован: 28.04.2002
Сообщения: 3551
Откуда: Москва
СообщениеПт, 13-Фев-2004 20:31 
Цитата

древние ветки в массу :)

раз уж нашел эту ветку в яндексе, то буду тут оффтопить

как проверить login И пароль юзверя введенные им... потипу как это делается при загрузке.

авторицазия сетевая.

пытался налабать чтото типа ниже нарисованного, не вышло нифига

Код:

var hToken:cardinal;
    tkp: TTokenPrivileges;
    tkpo: TTokenPrivileges;
  zero: DWORD;
begin


OpenProcessToken (GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken);
LookupPrivilegeValue(nil, pchar('SeTcbPrivilege'), tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken,FALSE,tkp,SizeOf( TTokenPrivileges ), tkpo,zero);

if LogonUser(pchar(UserName),'ACCOUNT_DOMAIN',pchar(Password),LOGON32_LOGON_BATCH,LoGON32_PROVIDER_DEFAULT,hToken)=false
then AllowLogin:=false
else AllowLogin:=true;


_________________


http://fotki.yandex.ru/users/vladimir13

С уважением, 13-ый Wink
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Пол:Муж Gelios
Oracle-вый маньяк, Админ


Возраст: 37
Знак зодиака: Водолей
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
СообщениеПн, 16-Фев-2004 13:13 
Цитата

аа, ты в этом смысле...
см ntset там есть такая проверка

_________________
нельзя давать всем всего, ибо всех много, а всего мало
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж 13-ый
Администратор


Возраст: 35
Знак зодиака: Близнецы
Зарегистрирован: 28.04.2002
Сообщения: 3551
Откуда: Москва
СообщениеПн, 16-Фев-2004 20:33 
Цитата

чаго? мне и под 98 м надо
_________________


http://fotki.yandex.ru/users/vladimir13

С уважением, 13-ый Wink
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Пол:Муж Dave
Модератор


Возраст: 36
Знак зодиака: Лев
Зарегистрирован: 08.08.2002
Сообщения: 1208
Откуда: Yaroslavl
СообщениеВт, 17-Фев-2004 8:28 
Цитата

Из FAQ, работает и под NT и под 98


uses Windows;

procedure RebootSystem;
var

handle, ph: THandle;
pid, n: DWORD;
luid: TLargeInteger;
priv: TOKEN_PRIVILEGES;
dummy: PTokenPrivileges;
ver: TOSVERSIONINFO;
begin

ver.dwOSVersionInfoSize := Sizeof(ver);
GetVersionEx(ver);
if ver.dwPlatformId=VER_PLATFORM_WIN32_NT then begin
pid := GetCurrentProcessId;
if OpenProcessToken(ph, TOKEN_ADJUST_PRIVILEGES, handle) then
if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', luid) then begin
priv.PrivilegeCount := 1;
priv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
priv.Privileges[0].Luid := luid;
dummy := nil;
AdjustTokenPrivileges(handle, false, priv, 0, dummy^, n);
end;
end;
ExitWindowsEx(EWX_REBOOT, 0);
end;

И еще одна:

Procedure Shutdown(Name:String; // Имя машины (\\SERVER)

Message:String; // Сообщение
Delay:Integer; // Задержка перед рестартом
Restart,CloseAll:Boolean);
var

ph:THandle;
tp,prevst:TTokenPrivileges;
rl:DWORD;
begin

OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,ph);
LookupPrivilegeValue(Nil,'SeShutdownPrivilege',tp.Privileges[0].Luid);
tp.PrivilegeCount:=1;
tp.Privileges[0].Attributes:=2;
AdjustTokenPrivileges(ph,FALSE,tp,SizeOf(prevst),prevst,rl);
InitiateSystemShutdown(PChar(name),PChar(Message),Delay,Restart,CloseAll);
ShowMessage(SysErrorMessage(GetLastError)); // Результат
end;

_________________
Не убегай от снайпера - умрешь уставшим !
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Пол:Муж 13-ый
Администратор


Возраст: 35
Знак зодиака: Близнецы
Зарегистрирован: 28.04.2002
Сообщения: 3551
Откуда: Москва
СообщениеВт, 17-Фев-2004 21:47 
Цитата

дав, не спи, прочитай что я написал :)
_________________


http://fotki.yandex.ru/users/vladimir13

С уважением, 13-ый Wink
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Пол:Муж Dave
Модератор


Возраст: 36
Знак зодиака: Лев
Зарегистрирован: 08.08.2002
Сообщения: 1208
Откуда: Yaroslavl
СообщениеСр, 18-Фев-2004 8:14 
Цитата

to 13ый
comp Ну... бывает иногда. Улыбка

_________________
Не убегай от снайпера - умрешь уставшим !
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Пол:Муж Gelios
Oracle-вый маньяк, Админ


Возраст: 37
Знак зодиака: Водолей
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
СообщениеСр, 18-Фев-2004 8:29 
Цитата

stack overflow :)
_________________
нельзя давать всем всего, ибо всех много, а всего мало
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Dave
Модератор


Возраст: 36
Знак зодиака: Лев
Зарегистрирован: 08.08.2002
Сообщения: 1208
Откуда: Yaroslavl
СообщениеСр, 18-Фев-2004 9:52 
Цитата

А затем NT-шный B.S.O.D. Счастлив
_________________
Не убегай от снайпера - умрешь уставшим !
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Страница 1 из 2 На страницу 1, 2  След.
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100