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

Вниз

Отключить питание.   Найти похожие ветки 

 
Дмитрий С ©   (2010-12-27 17:25) [0]

Можно ли как нибудь в winXP-win7 программно выключить блок питания, как будто я нажал кнопку питания и подержал ее 4 сек (обычно так)?
Если да, то как?
Желательно чтобы прав администратора хватало.

Вопрос собственно не для применения, а для общего развития:)


 
Dennis I. Komarov ©   (2010-12-27 17:31) [1]

За что так жестоко?


 
Anatoly Podgoretsky ©   (2010-12-27 17:32) [2]

> Дмитрий С  (27.12.2010 17:25:00)  [0]

shutdown + cmd


 
Игорь Шевченко ©   (2010-12-27 20:30) [3]

можно


 
brother ©   (2010-12-28 08:22) [4]

> shutdown + cmd

пакастная вещица во вражеских руках ;)


 
clickmaker ©   (2010-12-28 11:16) [5]

ExitWindowsEx()


 
Полвторого   (2010-12-28 11:25) [6]


> ExitWindowsEx()

Э, нет. Долго выключаться будет =)

Если рутовские права есть — то можно просто свалить CSRSS.EXE, и система автоматически уйдёт в немедленный офф-лайн.
Как раз так, как будто нажимаешь кнопку на питальнике.

Грубовато, конечно, но куда деваться.


 
Anatoly Podgoretsky ©   (2010-12-28 11:29) [7]

> brother  (28.12.2010 08:22:04)  [4]

Выключение питания всегда пакостно, чем бы оно не делалось.


 
Anatoly Podgoretsky ©   (2010-12-28 11:37) [8]

> brother  (28.12.2010 08:22:04)  [4]

Q-161: Как выключить или перезагрузить компьютер?
procedure  Shutdown(Flags:  DWORD);
var
    hToken:  THandle;
    Luid:  Int64;
    NewPrivileges:  TTokenPrivileges;
    OldPrivileges:  TTokenPrivileges;
    OldPrivilegesSize:  DWORD;
begin
    if  Win32Platform  =  VER_PLATFORM_WIN32_NT
    then  //  получения  привилегий  для  платформы  NT
    begin
            //  получения  локального  уникального  ИД
        Win32Check(LookupPrivilegeValue(nil,  "SeShutdownPrivilege",
Luid));
            //  получения  токена  процесса
        Win32Check(OpenProcessToken(GetCurrentProcess,
            TOKEN_ADJUST_PRIVILEGES  or  TOKEN_QUERY,  hToken);
        NewPrivileges.PrivilegeCount  :=  1;
        NewPrivileges.Privileges[0].Attributes  :=  SE_PRIVILEGE_ENABLED;
        NewPrivileges.Privileges[0].Luid  :=  Luid;
            //  настройка  привилегий
        AdjustTokenPrivileges(hToken,
            False,
            NewPrivileges,
            SizeOf(OldPrivileges),
            OldPrivileges,
            OldPrivilegesSize);
        try
            Win32Check(GetLastError  =  ERROR_SUCCESS);
        finally
            CloseHandle(hToken);
        end
    end;
    Win32Check(ExitWindowsEx(Flags,  0));
end;

------=_NextPart_000_015A_01CBA67B.46BDE770


 
Dennis I. Komarov ©   (2010-12-28 14:49) [9]

А я думал, что PowerOff-4sec это чисто мехонический офф, т.е. до мозгов не доходит - гдето в маме происходит "ЁК"


 
Leonid Troyanovsky ©   (2010-12-28 18:45) [10]


> Dennis I. Komarov ©   (28.12.10 14:49) [9]

> А я думал, что PowerOff-4sec это чисто мехонический офф,

Типа: тормоз, 3.5 с не хватает ;)

--
Regards, LVT.


 
brother ©   (2010-12-29 03:40) [11]

> что PowerOff-4sec это чисто мехонический офф, т.е. до мозгов
> не доходит - гдето в маме происходит "ЁК"

Так оно и есть... и

> программно выключить блок питания

имхо не корректно поставлен вопрос... но если уж програмно, то Анатолий уже предложил вариант...


 
Германн ©   (2010-12-29 03:54) [12]


> Anatoly Podgoretsky ©   (28.12.10 11:29) [7]
>
> > brother  (28.12.2010 08:22:04)  [4]
>
> Выключение питания всегда пакостно, чем бы оно не делалось.
>
>

+1
А для общего развития лучше удавить автора подушкой.
А топик удалить. :)


 
brother ©   (2010-12-29 03:56) [13]

С удалением топика - согласен)
Да и Анатолий уже врагу все наши "больные места" открыл)))


 
Германн ©   (2010-12-29 04:19) [14]


> Да и Анатолий уже врагу все наши "больные места" открыл)))

АП "открыл" только "разрешенные"  способы.
А способ "4-х секунд" пока остаётся не познанным. :)


 
Anatoly Podgoretsky ©   (2010-12-29 12:07) [15]

> Германн  (29.12.2010 04:19:14)  [14]

Таймеры пусть познает сам.


 
Дмитрий С ©   (2010-12-29 18:54) [16]

Суть не в том, чтобы 4 сек подождать, а чтобы эффект был выключения питания.

ExitWindows, shutdown+cmd не умеют отключать питание сразу, а только инициируют завершение работы системы.

К примеру, я делаю shutdown -s -f -t 0 (завершение работы, forced, таймаут 0), что происходит:
Система закрывает все открытые приложения, затем завершает свою работу, затем отключает питание (видимо посылает какой-то сигнал блоку питания).

А топике говориться про мгновенное отключение питания - т.е. сразу послать блоку питания сигнал, что пора отключиться.


> Игорь Шевченко ©   (27.12.10 20:30) [3]

А как?

Видимо это както связано с ACPI


 
Smile   (2010-12-29 20:11) [17]

А я согласен с > Дмитрий С ©
чтобы эффект был выключения питания

принципиально не решен :(
несмотря на некоторые "остроумные" комментарии


 
Игорь Шевченко ©   (2010-12-29 21:33) [18]


> Видимо это както связано с ACPI


Да. Есть такой APM BIOS, по нему есть TFM. Не знаю, как из защищенного режима (тоже интерфейс есть), но из реального работает. Заодно в реальный режим переключишься :)


 
Германн ©   (2010-12-30 02:10) [19]


> Дмитрий С ©   (29.12.10 18:54) [16]
>
> Суть не в том, чтобы 4 сек подождать, а чтобы эффект был
> выключения питания.
>

А зачем? Навредить? Ты вроде не вредитель.
Естественно такое выключение возможно, иначе как бы "продвинутые пользователи" смогли бы выключить комп в случае "жесткого" подвисания ОС. Но реализовано оно в БИОС. Так ещё раз спрошу зачем тебе это нужно?


 
KilkennyCat ©   (2010-12-30 08:47) [20]


> Германн ©   (30.12.10 02:10) [19]
> Так ещё раз спрошу
> зачем тебе это нужно?

лечение от вирусов, перезапуск системы.
Мне, например, такое бы пригодилось для перезапуска подвисшего бортового компа (просто резет там не прокатит, там много внешней хрени должно еще рестартануть, и на давнный момент сброс происходит только выключением зажигания, что не есть удобно).

проблема идеально решается внешней релюшкой. есть небольшой недостаток: распространять эту прогу придется с релюшкой.



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

Форум: "Начинающим";
Текущий архив: 2011.03.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.003 c
2-1293658710
Anthony
2010-12-30 00:38
2011.03.27
После апдейт SQL запросов - тормозит скроллинг


2-1293565245
nza
2010-12-28 22:40
2011.03.27
ширина стробца без фиксированной строки


2-1293542920
nza
2010-12-28 16:28
2011.03.27
Св-во TFont


15-1292323166
ixen
2010-12-14 13:39
2011.03.27
Setup и Firebird


1-1249831819
dmitry_12_08_73
2009-08-09 19:30
2011.03.27
Как скопировать клиентскую область окна в bitmap





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