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

Вниз

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

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

Наверх





Память: 0.51 MB
Время: 0.042 c
3-1199809422
Slimer
2008-01-08 19:23
2008.06.08
Zeos & MySQL 4.1+


4-1175250154
balepa
2007-03-30 14:22
2008.06.08
WaitCommEvent (EV_TXEMPTY)


2-1210948367
assassin8899
2008-05-16 18:32
2008.06.08
lookup


2-1211094428
Квэнди
2008-05-18 11:07
2008.06.08
Замена собственного исполняемого файла


15-1209030623
TUser
2008-04-24 13:50
2008.06.08
X-сервер для ХР





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