Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.08;
Скачать: CL | DM;

Вниз

Безусловное выключение компа   Найти похожие ветки 

 
F@T@L_Err0r   (2008-05-14 16:30) [0]

Здравствуйте...Такой вопрос: Каким образом завершить работу компа так чтобы ето выглядело так как бутто выдернули шнур из розетки?


 
Игорь Шевченко ©   (2008-05-14 16:39) [1]

нафига ?


 
F@T@L_Err0r   (2008-05-14 16:41) [2]

Пишу прогу которая нагружает процессор...короче типа мини теста проца...и паралельно замеряется температура...и когда она достигает критической нада реализовать такое выключение...


 
Renegat   (2008-05-14 16:48) [3]

MOV AL, 254;
OUT 100, AL;


Это сброс проца.
Правда, ОСи на ядре NT просто так это выполнить не дадут - OUT привелегирован. Придётся ухищряться...


 
sniknik ©   (2008-05-14 16:50) [4]

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


 
F@T@L_Err0r   (2008-05-14 17:00) [5]

To Renegat: А если получить привилегии как при обычном выключении???

To sniknik: я так тоже думал вначале..но потом прикинул что проц ведь не лишают кулера ВООБЩЕ...Радиатор должен вполне справится с теплоотводом...


 
Vlad Oshin ©   (2008-05-14 17:04) [6]

procedure RebootSystem(p:byte);
var
hToken, i: THandle;
NewState: TTokenPrivileges;
OSVersionInfo: TOSVersionInfo;
begin
 OSVersionInfo.dwOSVersionInfoSize := SizeOf(OSVERSIONINFO);
 GetVersionEx(OSVersionInfo);
 if OSVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then
   if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
   begin
     LookupPrivilegeValue(nil, "SeShutdownPrivilege", NewState.Privileges[0].Luid);
     NewState.PrivilegeCount := 1;
     NewState.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
     AdjustTokenPrivileges(hToken, False, NewState, 0, nil, i);
//      CloseHandle(hToken);
   end;
 if P=1 then SetSystemPowerState(True, True);
 if P=2 then SetSystemPowerState(False, False);
 if P=3 then ExitWindowsEx(EWX_LOGOFF, 0);
 if P=4 then ExitWindowsEx(EWX_REBOOT, 0);
 if P=5 then ExitWindowsEx(EWX_SHUTDOWN, 0);
 if P=6 then ExitWindowsEx(EWX_POWEROFF, 0);

end;


 
Vlad Oshin ©   (2008-05-14 17:04) [7]

Удалено модератором


 
Vlad Oshin ©   (2008-05-14 17:04) [8]

Удалено модератором


 
Renegat   (2008-05-14 17:05) [9]

> А если получить привилегии как при обычном выключении???

Тут вообще не об этих привилегиях речь.
Функции Винды и опкоды процессора - разницу чувствуете?


 
Сергей М. ©   (2008-05-14 17:08) [10]


> когда она достигает критической нада реализовать такое выключение


Может и реализовывать ничего не надо ?

Многие распространенные чипсеты и БИОСы имеют готовую встроенную интересующую тебя функциональность - выставляешь порог температуры и соответствующую порогу акцию, например, пищать до одури или рестартовать проц или вырубить машину ..


 
F@T@L_Err0r   (2008-05-14 17:09) [11]

To Vlad Oshin: Похоже на обычное завершение работы системы...Вы думаете етот код будит работать так как я описал???

To Renegat: А ну тогда понял...сразу не дошло...


 
F@T@L_Err0r   (2008-05-14 17:10) [12]


> Может и реализовывать ничего не надо ?


А если мои понятия про критическую температуру проца и понятия производителя мат.платы\биоса вкорне разходятся???


 
Renegat   (2008-05-14 17:14) [13]

Итак, прямая запись в порт под NT возможна только в дровах уровня ядра. Если очень хочется, можно такой драйвер написать, поставить, и в нужный момент к нему обратиться "с просьбой о помощи" :)


 
Игорь Шевченко ©   (2008-05-14 17:15) [14]


> Итак, прямая запись в порт под NT возможна только в дровах
> уровня ядра. Если очень хочется, можно такой драйвер написать,
>  поставить, и в нужный момент к нему обратиться "с просьбой
> о помощи" :)


Если он от жары не умрет к тому времени


 
F@T@L_Err0r   (2008-05-14 17:16) [15]

To Renegat: А писать его нада на асемблере???или можна и на делфи???


 
Palladin ©   (2008-05-14 17:18) [16]

можно и на делфи, только не откомпилирует


 
Vlad Oshin ©   (2008-05-14 17:19) [17]

прав, я не пробовал как-то со всеми параметрами

тогда идея такая: Берем матричный принтер(иное подобное) к головке привязываем за нитку вилку, контролируем направление силы, и посылаем на печать что-нибудь. За нитку вилку из розетки и выдернет.


 
Vlad Oshin ©   (2008-05-14 17:19) [18]

Удалено модератором


 
Vlad Oshin ©   (2008-05-14 17:19) [19]

Удалено модератором


 
F@T@L_Err0r   (2008-05-14 17:19) [20]


> можно и на делфи, только не откомпилирует
>


Проблема в том что я с ассемблером не очень то и дружу...Возможны ли альтернативные пути решеня данной проблемы???


 
F@T@L_Err0r   (2008-05-14 17:22) [21]


> тогда идея такая: Берем матричный принтер(иное подобное)
> к головке привязываем за нитку вилку, контролируем направление
> силы, и посылаем на печать что-нибудь. За нитку вилку из
> розетки и выдернет.


Спасибо улыбнуло....но проблема состоит в следующем: к каждой копии программы нада гдето(где?!?!)доставать етот раритетный мегадевайс матричный принтер и все остальное оборудование..

Ах да и вопрос: А струйный принтер разве не подойдет???


 
Vlad Oshin ©   (2008-05-14 17:25) [22]

Лоток CD


 
Vlad Oshin ©   (2008-05-14 17:25) [23]

Удалено модератором


 
Palladin ©   (2008-05-14 17:34) [24]


> Лоток CD

непотянет...


 
Vlad Oshin ©   (2008-05-14 17:37) [25]


> непотянет...

как цепь выстроить


 
Renegat   (2008-05-14 18:20) [26]

Не, всё не то. Нужно решение на аппаратном уровне.
1) Пиропатроны! Как только проц достигнет "критической" температуры, он их воспламеняет, а они вышибают его из гнезда! Правда, потом всю систему придётся перезаряжать...
2) А! Во! Нужно сделать под CPU подкладку из диэлектрика с высоким коэффициентом температурного расширения. Как только t вырастет больше некоего предела, материал расширится настолько, что проц потеряет контакт с матплатой.

%-D


 
Юрий Зотов ©   (2008-05-14 20:54) [27]

> Palladin ©   (14.05.08 17:34) [24]

Через рычаг.
:о)


 
Сергей М. ©   (2008-05-14 20:56) [28]


> F@T@L_Err0r   (14.05.08 17:10) [12]


Тогда ведущие бренды-производители процов потеряли в твоей персоне довольно ценный экзотический фрукт)


> F@T@L_Err0r   (14.05.08 17:19) [20]
> с ассемблером не очень то и дружу.


Тогда не потеряли а , наоборот, приобрели)
Мало ли какой фрукт с ними не дружит)


 
Anatoly Podgoretsky ©   (2008-05-14 21:01) [29]

Надо не питание выключить, а программу.


 
Virgo_Style ©   (2008-05-14 22:29) [30]

Раз поставил подобную программу, поставил флажок "выключать при перегреве", "загружать при запуске WIndows"... а на показания датчика глянуть забыл.

А она неправильно определила тип датчика, и считала, что температура процессора - градусов двести.

Было весело.



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

Текущий архив: 2008.06.08;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.02 c
15-1209108197
Ega23
2008-04-25 11:23
2008.06.08
Правовые аспекты использования алгоритмов шифрования


15-1208933357
sql
2008-04-23 10:49
2008.06.08
MS SQL 2000


15-1209024149
Anatoly Podgoretsky
2008-04-24 12:02
2008.06.08
Whete to buy DVBS in Estonia


2-1211044712
lewka-serdceed
2008-05-17 21:18
2008.06.08
Нажатие на Enter


2-1211139264
master_root
2008-05-18 23:34
2008.06.08
Типизированный указатель в консоли