Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: выключение Комп
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Программирование
grach41
Доброе время.
А вопрос у меня такой. Как можно выключить комп после завершения программы. Комп стоит на испытаниях стенда и по окончании режима хотелось бы выключать его, а то ночью вставать очень не хочется.
Комп простой пень 4работаем под ДОСОМ 6 язык С++
XVR
Цитата(grach41 @ Jan 17 2008, 18:14) *
Доброе время.
А вопрос у меня такой. Как можно выключить комп после завершения программы. Комп стоит на испытаниях стенда и по окончании режима хотелось бы выключать его, а то ночью вставать очень не хочется.
Комп простой пень 4работаем под ДОСОМ 6 язык С++
Ключевое слово - ACPI
Более простое (но сильно устаревшее) - APM
XVR
Цитата(grach41 @ Jan 17 2008, 18:14) *
Доброе время.
А вопрос у меня такой. Как можно выключить комп после завершения программы. Комп стоит на испытаниях стенда и по окончании режима хотелось бы выключать его, а то ночью вставать очень не хочется.
Комп простой пень 4работаем под ДОСОМ 6 язык С++
Покопал в своих закромах, нашел программу выключающую комп через APM
Нажмите для просмотра прикрепленного файла
grach41
Спасибо за помощь. Дома нет DOS на работе буду пробовать. Но хотелось разобраться более детально. Писать код в слепую не очень хочется. Где бы найти первоисточник. Так что пошлите куда нибудь.

Шутка с http://www.delcb.com/forum/viewtopic.php?t=340

Вспомнилось, как один фидошник автовыключал свой 386. Шнур питания был привязан к каретке мозаичного принтера. В нужный момент давалась команда печатать длинную строку - и вилка выдергивалась из розетки
DeadMoroz
Я делал так:
Код
unsigned char APMSoftPowerOff(void)
{
    asm{
        push AX
        push BX
        push CX
        mov AX, 0x5300    // 1: APM install check
        mov BX, 0x0000
        int 0x15
        jc APM_err
        mov AX, 0x5301    // 2: APM interface connect
        mov BX, 0x0000
        int 0x15
        jc APM_err
        mov AX, 0x530E    // 3: APM driver version
        mov BX, 0x0000
        mov CX, 0x0102    // APM v1.2 (CH=01, CL=02)
        int 0x15
        jc APM_err
        mov AX, 0x5307    // 4: APM set power state
        mov BX, 0x0001
        mov CX, 0x0003    // power off
        int 0x15
        jc APM_err
        mov AX, 0x5304    // 5: APM interface diconnect (only if power off error)
        mov BX, 0x0000
        int 0x15
        pop CX
        pop BX
        pop AX
    }
    APM_err:
    return(1);
}


А источник - старый добрый DOS TechHelp, раздел APM API.
XVR
Цитата(grach41 @ Jan 18 2008, 19:20) *
Спасибо за помощь. Дома нет DOS на работе буду пробовать. Но хотелось разобраться более детально. Писать код в слепую не очень хочется. Где бы найти первоисточник. Так что пошлите куда нибудь.
В архиве лежит и первоисточник и готовый код
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.