![]() |
Перевод компа в спящий режим (C++)
Ребят, подскажите решение следующей проблемы:
Для перехода компа в спящий одно приложение надо выгружать. Решил написать программку, чтобы можно было одним нажатием убивать выбранный процесс и переходить в спящий. Проблема в том, что я не знаю, какой функцией пользоваться для убивания процесса и перехода в спящий. Если выполнять это средствами MSDOS, то тогда понятно: Код:
taskkill /IM имя.exe |
Гы, получается ты ничего не знаешь т.к. вся твоя программа в этом и состоит :)
|
Цитата:
|
Цитата:
Цитата:
Для завершения процесса вроде TerminateProcess(), А для того, чтобы его усыпить? |
Вызов функции Windows API "SetSuspendState" для перехода в ждущий или спящий режим.
; Windows 95/NT4: поскольку этой функции нет, последующий код не произведёт эффекта. ; Параметр №1: 1 - спящий, 0 - ждущий. ; Параметр №2: 1 - ждущий режим немедленно, 0 - опросить все приложения о разрешении. ; Параметр №3: 1 - все "пробуждающие" события отключены, 0 - включены. http://msdn2.microsoft.com/en-us/library/aa373201.aspx |
а что значит усыпить процес?
|
С убийством процесса я разобрался.
os1r1s спасибо за помощь. Ребят, я может совсем идиот, но все же - подскажите откуда мне взять PowrProf.lib Цитата:
|
Средствами с++ функии main можно вызывать аргументы смд.Т.е вроде реально в с++ выполнить taskkill /IM имя.exe
rundll32.exe powrprof.dll,SetSuspendState это.Так теория.... Я только учусь |
Цитата:
Проблема в том, что я никак не соображу где найти нужную библиотеку.... |
GetProcAddress(LoadLibrary("PowrProf.dll"), "SetSuspendState");
Added: SetSystemPowerState(BOOL fSuspend, BOOL fForce) А эта есть в кернеле32. |
А я немного по-другому сделал
Цитата:
|
BroadcastSystemMessage() c SC_MONITORPOWER рубит монитор например.
|
sn0w, спасибо, пригодиться.
Скоро я наконец допишу прогу, и выложу сюда. Как-никак первая серьезная (ну, немного серьезная) программа =) Сейчас пытаюсь сообразить, как сделать ввод данных из ini файла обратно в TEdit и в массив. Вся проблема в том, что эти данные строковые, а значить StrToInt уже не прокатит... Кстати, запись в файл выполнена средствами TIniFile (WriteString), и в теории вывод надо делать с помощью ReadString, но как, я пока так и не понял... |
Цитата:
Код:
var |
hidden, это если не ошибаюсь делфи? Хотя с с++ они очень похожи. Иными словами получается так:
Код:
void __fastcall TSettingBox::FormCreate(TObject *Sender)Added: вот блин, я дал... Hidden спасибо!!! Я совсем идиот стал))) Взял и поместил ф-ию чтения на кнопку сохранения и закрытия))))) Код исправил, как надо. Hidden, еще раз, спасибо))) |
Цитата:
|
Хех, весь инет облазил, а помог родной аЧат =)))
2Hidden, я сам на делфи не работал, но сейчас, когда искал нужный мне материал часто сталкивался, и пришел к выводу, что они очень похожи. Разумееется мое мнение мнение очень поверхностно, но на первый взгляд отличие только в операторах объявления. На API? Ммм... Такой вопрос, я нашел код для убийства процесса такого вида: Код:
Почитал на сайте мелкомягких про это, но толком ничего не понял. Можешь объяснить, что это такое? |
Цитата:
Никогда этим не пользовался, но думаю что-то вроде этого: Код:
BroadcastSystemMessage(BSF_IGNORECURRENTTASK + BSF_NOTIMEOUTIFNOTHUNG, BSM_APPLICATIONS, WM_DESTROY, 0, 0); |
2hidden, спасибо. Буду пробовать =)
|
Спустя 2 недели я все-таки добрался доделать прогу, и как и обещал, выкладываю ссылку сюда. Там же и ее исходники. Сильно не пинайте =)
_http://winsource.mirahost.ru/moi-programmy/rubilnik-ver-10-beta/ |
Для первого релиза неплохо. +
|
Ky3bMu4, спасибо =)
|
Если кому интересно - дописал новую версию. Основное изменение - интерфейс и изменил название. Подробнее на новом сайте здесь
|
| Время: 09:23 |