![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Безусловное выключение компа [D7, XP]
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]нафига ?