Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Безусловное выключение компа [D7, XP]


Страницы:   1 2

F@T@L_Err0r ©   (2008-05-14 16:30:00) 

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


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


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


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

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


Renegat   (2008-05-14 17:05:00) [22]

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

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


Vlad Oshin   (2008-05-14 17:04:00) [23]

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


Vlad Oshin   (2008-05-14 17:04:00) [24]

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


Vlad Oshin   (2008-05-14 17:04:00) [25]

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;


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

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

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


sniknik   (2008-05-14 16:50:00) [27]

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


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

MOV AL, 254;
OUT 100, AL;


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


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

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


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

нафига ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо