выключить комп |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
выключить комп |
kikoz |
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: 1 |
привет,народ в программировании я начинающий любитель.понадобилась тут мне програмка,которая бы выключала комп через заданное количество минут (ну скажем до 1000) искать такую прогу в нете лень,да разобраться самому было бы приятнее. как бы такое реализовать на паскале? какой оператор комп выключает-то?
-------------------- Знанием API пугать никого не нужно...
|
Tan |
Сообщение
#2
|
|||
Профи Группа: Пользователи Сообщений: 559 Пол: Мужской Реальное имя: Бруно Репутация: 10 |
Начинающему любителю лучше начинать с примитива.
Сообщение отредактировано: klem4 - -------------------- Цитата Imagination is more important than knowledge. Albert Einstein |
|||
kikoz |
Сообщение
#3
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: 1 |
Начинающему любителю лучше начинать с примитива. спасибо,но лучше ссылочку на исходник -------------------- Знанием API пугать никого не нужно...
|
klem4 |
Сообщение
#4
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата kikoz Решение нужно именно на Паскале ? Делфи не подойдет ? Там есть функции ExitWindows и ExitWindowsEx, с помощью которых это реализуется. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Malice |
Сообщение
#5
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Для паскаля можно сделать так:
asm С виндовсом наверное не прокатит, не знаю, сейчас пробовать не хочется Сообщение отредактировано: Malice - |
kikoz |
Сообщение
#6
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: 1 |
дельфи подойдет а вот за ассемблер я пока не принимался,так что в плане образования решение на ассемблере мне пока не интересно,но в любом случае спасибо за беспокойство.приду домой-попробую
-------------------- Знанием API пугать никого не нужно...
|
kikoz |
Сообщение
#7
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: 1 |
оказывается тут не все так просто,пообщался с дядей Гуглем,нашел один способ,но мне кажется он чреват потерей данных (на момент выключения у меня будет работать всего одна программа-eMule):
var t: _Token_Privileges; ht: cardinal; rl: cardinal; begin if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ht) then begin LookupPrivilegeValue(nil, 'SeShutdownPrivilege', t.Privileges[0].Luid); t.PrivilegeCount:=1; t.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(ht, false, t, 0, nil, rl); end; ExitWindowsEx(EWX_FORCE or EWX_SHUTDOWN, 0); end; проверить пока не могу-на работе нету Делфи -------------------- Знанием API пугать никого не нужно...
|
Текстовая версия | 23.12.2024 19:44 |