Вопрос № 42338: Здравствуйте, меня интересуют два вопроса:
1. Какое сообщение надо послать, чтобы отключить компьютер(не просто выйти из ОС, а чтобы и компьютер выключился);
2.1 Как запустить в Windows приложение с параметрами? Мне надо, чтобы мое приложение...
Вопрос № 42.338
Здравствуйте, меня интересуют два вопроса:
1. Какое сообщение надо послать, чтобы отключить компьютер(не просто выйти из ОС, а чтобы и компьютер выключился);
2.1 Как запустить в Windows приложение с параметрами? Мне надо, чтобы мое приложение знало, какие параметры ему передаются и соответственным образом работало.
2.2 Как запустить командную строку в Винде, впечатать туда команду и заставить выполнить напечатанную команду?
Большой респект,
Сафаргалиев Тимур.
Отправлен: 07.05.2006, 06:44
Вопрос задал: NotLame (статус: Посетитель)
Всего ответов: 5 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, NotLame!
1. Как правило, это делается с помощью функции ExitWindows() с передачей ей параметра EWX_POWEROFF.
2.1. С помощью ShellExecute(). Синтаксис такой (немного упрощён): ShellExecute(0,'open','путь_к_файлу','параметры','рабочий_каталог',1);
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
3.
cmd с параметром /k или /c - запустить с выполнением команды. Например
cmd /k cd c: - запустить ком. строку и перейти на диск C:
cmd /c cd c: - запустить ком. строку, перейти на диск C: и завершить работу ком. строки
Ответ отправил: estiGi (статус: Студент)
Ответ отправлен: 07.05.2006, 16:01 Оценка за ответ: 5
Отвечает: mix_mix
Здравствуйте, NotLame!
Большинство ответивших забыло, что под NT-системы нужно получать привелегию SE_SHUTDOWN. Ну, а на последок рекомендую функцию NtShutdownSystem из ntdll.dll (учите NativeAPI), вместо ExitWindowsEx. Тогда компьютер выключается немножко побыстрей (где-нибудь за 0.2 сек, без лишних вопросов), правда все RING3 приложения летят в голубую даль, но все RING0 корректно завершаются (драйвера, ядро системы)
Приложение:
Ответ отправил: mix_mix (статус: 3-ий класс)
Ответ отправлен: 07.05.2006, 17:38 Оценка за ответ: 5
Отвечает: Лысков Игорь Витальевич
Здравствуйте, NotLame!
1. Поддерживаю mix_mix - сначала необходимо получить соответствующую привилегию...
Хочу предложить свой вариант завершения Винды (на С)
Параметром передается EWX_POWEROFF - для выключения,
либо EWX_REBOOT -для перегрузки
Приложение:
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Студент)
Ответ отправлен: 10.05.2006, 14:51