Форум: "Начинающим";
Текущий архив: 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