1

Тема: Як змусити ПК вимкнутися ?

Маю программу яка має вимкнути ПК.
Программа на Cи (компеляцiя через G++)
Проблемма то в чому, менi треба вимкнути пк (бажано щоб хард не пописало) без бiблiотек windows, linux и тд.
Тiльки чистий Си без бiблiотек i викликiв функцiй виндовс (Винди як би нема... Так що викликати нема чого).
Поможiть будь ласка.

2

Re: Як змусити ПК вимкнутися ?

system("$of comp commmsnd"); ?

типу так ?

3 Востаннє редагувалося Fox (20.03.2017 19:34:33)

Re: Як змусити ПК вимкнутися ?

Менi треба без використання виндовс. Його типу нема....
Треба якось або адрусою або asm кодом.
А як... Я не знаю

4

Re: Як змусити ПК вимкнутися ?

Якщо ви знайомі з комп'ютерами, старшими за ~15 років, то мусите знати, що така можливість є далеко не на всіх комп'ютерах.
Ну і як би ви були добре знайомі з C, то знали б, що g++ - компілятор не C, а C++ з колекції gcc.
Якщо ж ви пишете власну ОС для нащадків x86 (це я телепатично прозріваю, ви такого нам не сказали), то доведеться робити щось таке.

5 Востаннє редагувалося Fox (20.03.2017 19:42:49)

Re: Як змусити ПК вимкнутися ?

koala написав:

Якщо ви знайомі з комп'ютерами, старшими за ~15 років, то мусите знати, що така можливість є далеко не на всіх комп'ютерах.
Ну і як би ви були добре знайомі з C, то знали б, що g++ - компілятор не C, а C++ з колекції gcc.
Якщо ж ви пишете власну ОС для нащадків x86 (це я телепатично прозріваю, ви такого нам не сказали), то доведеться робити щось таке.

Та знаю я... Менi вже всi вуха в вк прожужав знайомий що G++ це C++ компилятор.
Але я пишу на Cи.

Дякую за сайт.
PS:

;Connect to APM API
MOV     AX,5301
XOR     BX,BX
INT     15

;Try to set APM version (to 1.2)
MOV     AX,530E
XOR     BX,BX
MOV     CX,0102
INT     15

;Turn off the system
MOV     AX,5307
MOV     BX,0001
MOV     CX,0003
INT     15

;Exit (for good measure and in case of failure)
RET

Цей код не пошкодить хард ? А то раптом я просто буду вiдрубати струм а харди того наче не люблять

Прихований текст

Залишилося додуматися як то все на Cи та ще и в G++ стилi (там асм iнший)

6

Re: Як змусити ПК вимкнутися ?

vtorgashov написав:

Цей код не пошкодить хард ?

У вас дуже цікаві питання. Харди переважно перейшли на автономне вимикання ще до появи ACPI. З моїх друзів дитинства тільки в одного перед вимиканням комп'ютера треба було набирати

park

а от комп'ютери програмно не вимикалися в жодного.

7

Re: Як змусити ПК вимкнутися ?

koala написав:
vtorgashov написав:

Цей код не пошкодить хард ?

У вас дуже цікаві питання. Харди переважно перейшли на автономне вимикання ще до появи ACPI. З моїх друзів дитинства тільки в одного перед вимиканням комп'ютера треба було набирати

park

а от комп'ютери програмно не вимикалися в жодного.

Я намагаюся вимкнути ПК 2010-2012р.
Не знаю тiльки як.

8

Re: Як змусити ПК вимкнутися ?

НАПИШІТЬ "ДЛЯ ВИМКНЕННЯ пк НАЖМІТЬ КЛАВІШУ off НА СИСТЕМУНОМУ БЛОКОВІ"

Подякували: koala, cheappi386, Maxrad203

9

Re: Як змусити ПК вимкнутися ?

reverse2500 написав:

НАПИШІТЬ "ДЛЯ ВИМКНЕННЯ пк НАЖМІТЬ КЛАВІШУ off НА СИСТЕМУНОМУ БЛОКОВІ"

Ну хотiлось би программно.
PS: Кнопка живлення нi чого не робить.
А блока живлення нема (то ноут).

10

Re: Як змусити ПК вимкнутися ?

РАЗ НАЖАТИ POWER ТО ВІН ЗРАЗУ ВИМКНЕТЬСЯ

11

Re: Як змусити ПК вимкнутися ?

koala написав:

Якщо ви знайомі з комп'ютерами, старшими за ~15 років, то мусите знати, що така можливість є далеко не на всіх комп'ютерах.
Ну і як би ви були добре знайомі з C, то знали б, що g++ - компілятор не C, а C++ з колекції gcc.
Якщо ж ви пишете власну ОС для нащадків x86 (це я телепатично прозріваю, ви такого нам не сказали), то доведеться робити щось таке.

Кхм....
Щвидше за все то я щось не так роблю...

void stop()
{
     asm volatile("movl $0x5301, %AX; xorl %BX, %BX; int $0x15;");
     asm volatile("movl $0x530E, %AX; xorl %BX, %BX; movl $0102, %CX; int $0x15;");
     asm volatile("movl $0x5307, %AX; movl $0x0001, %BX; movl $0x0003, %CX; int $0x15; RET");
}

Але це = краш з рестартом.

12

Re: Як змусити ПК вимкнутися ?

reverse2500 написав:

РАЗ НАЖАТИ POWER ТО ВІН ЗРАЗУ ВИМКНЕТЬСЯ

Power не кнопка включення ?
В мене коли тиснути ту кнопку винда сама виключалася...
А з тою прогою глухо як в танку.

13

Re: Як змусити ПК вимкнутися ?

vtorgashov написав:
reverse2500 написав:

НАПИШІТЬ "ДЛЯ ВИМКНЕННЯ пк НАЖМІТЬ КЛАВІШУ off НА СИСТЕМУНОМУ БЛОКОВІ"

Ну хотiлось би программно.
PS: Кнопка живлення нi чого не робить.
А блока живлення нема (то ноут).

Батарею тоді видерніть і з розетки вииягніть 8)

14 Востаннє редагувалося Fox (20.03.2017 20:08:47)

Re: Як змусити ПК вимкнутися ?

LoganRoss написав:
vtorgashov написав:
reverse2500 написав:

НАПИШІТЬ "ДЛЯ ВИМКНЕННЯ пк НАЖМІТЬ КЛАВІШУ off НА СИСТЕМУНОМУ БЛОКОВІ"

Ну хотiлось би программно.
PS: Кнопка живлення нi чого не робить.
А блока живлення нема (то ноут).

Батарею тоді видерніть і з розетки вииягніть 8)

1) Хард не попише ?
2) Ну винда його якось вимкнути то може  :D

15

Re: Як змусити ПК вимкнутися ?

vtorgashov написав:
reverse2500 написав:

РАЗ НАЖАТИ POWER ТО ВІН ЗРАЗУ ВИМКНЕТЬСЯ

Power не кнопка включення ?
В мене коли тиснути ту кнопку винда сама виключалася...
А з тою прогою глухо як в танку.

та засвойте вже макрос #DEFINE з генерацією під різні ОС, я зараз пяний, приклад показати не взмозі простий і зрозумілий, свого часу я зрозумів, кроссплатфіорменість це мів, треба застосовуваати прийоми карати і фокуси цирку в програмуванні

Подякували: 0x9111A1

16 Востаннє редагувалося Fox (20.03.2017 21:32:22)

Re: Як змусити ПК вимкнутися ?

reverse2500 написав:
vtorgashov написав:
reverse2500 написав:

РАЗ НАЖАТИ POWER ТО ВІН ЗРАЗУ ВИМКНЕТЬСЯ

Power не кнопка включення ?
В мене коли тиснути ту кнопку винда сама виключалася...
А з тою прогою глухо як в танку.

та засвойте вже макрос #DEFINE з генерацією під різні ОС, я зараз пяний, приклад показати не взмозі простий і зрозумілий, свого часу я зрозумів, кроссплатфіорменість це мів, треба застосовуваати прийоми карати і фокуси цирку в програмуванні

Ем... Я думав можна якось через asm сказати биосу "Вирубай".
Все що знаходив просто перезагружало пк а не вимикало.

17

Re: Як змусити ПК вимкнутися ?

через біос ? В XP не можна через прячмий доступ, ( чит о від сімки ), лише через Win API, а тут, універсально, все одно мій алгоритсм не іделаьний, але

команда оприділити назву ОС
команда вимкнення ОС
profit 100 %

я іншого варіанту не бучу

18

Re: Як змусити ПК вимкнутися ?

reverse2500 написав:

через біос ? В XP не можна через прячмий доступ, ( чит о від сімки ), лише через Win API, а тут, універсально, все одно мій алгоритсм не іделаьний, але

команда оприділити назву ОС
команда вимкнення ОС
profit 100 %

я іншого варіанту не бучу

Ну ця прога це частково ОС вона загружаеться с флешки без винди, линокса и тд

19

Re: Як змусити ПК вимкнутися ?

Якщо ви пишете ОС, то скажіть в якому режимі працює процесор, бо функціїї біоса працюють лише в реальному режимі х86, а з захищеного режиму треба або напряму в порти писати, які різняться у виробників материнок, або знов-таки перемикатися на реальний режим. Якщо ви пишете на G++, то який код ви компілюєте -- я не повірю що 16-бітний, бо (здається) таке може робити лише пакунок DJGPP. Отож розберіться спочатку з режимами роботи процесора, а потім вже компілюйте/шукайте/питайте.

Подякували: varkon1

20

Re: Як змусити ПК вимкнутися ?

reverse2500 написав:

НАПИШІТЬ "ДЛЯ ВИМКНЕННЯ пк НАЖМІТЬ КЛАВІШУ off НА СИСТЕМУНОМУ БЛОКОВІ"

Прихований текст

А можна просто розбити системний блок, теж варіант.

Подякували: ostap34PHP1