Delphi: Как добиться приостановления работы компьютера?

Форум для программистов

Delphi: Как добиться приостановления работы компьютера?

Сообщение Jozic » Ср июл 24, 2002 8:23 pm

Собственно, сабж.
Дополнительная информация: Win98SE, Delphi 5 EE.
Если кто знает, подскажите pls.
Jozic
Призывник
 
Сообщений: 3
Зарегистрирован: Чт май 09, 2002 8:09 pm
Пункты репутации: 0

Сообщение Bloodrust » Ср июл 24, 2002 9:34 pm

В смысле приостановления? Если ты пишешь прогу и хочешь, чтобы она у тебя подольше считала, то напиши в том месте программы где нужно притормозить просто:
sleep(n);
, где n - время в миллисекундах, т.е. 1000 - 1 сек, 2000 - 2 сек и т.д.
Ты это имел ввиду?
Bloodrust
Ст. сержант
 
Сообщений: 43
Зарегистрирован: Чт май 16, 2002 5:34 pm
Откуда: Moscow
Пункты репутации: 0

Сообщение Гость » Чт июл 25, 2002 8:15 pm

Нет, я хочу, чтобы по достижению определенного условия компьютер "заснул", как из ПускЗавершение работы.
Гость
 

Сообщение Magister » Пн авг 19, 2002 10:13 am

Есть команда API: (пример для Дельфи)
SetSystemPowerState(Suspended, Mode: Boolean):boolean;
Suspended должно быть TRUE для ухода в спячку.
Mode - режим входа в спячку.
Если TRUE, то всем программам и драйверам посылается Message PBT_APMSUSPEND, по которому они должны немедленно прекратить работу. Если FALSE, то посылается Message PBT_APMQUERYSUSPEND запроса на спячку, и
драйвера в ответ могут дать отказ на включение режима спячки.
то есть:
Код: выделить все
SetSystemPowerState(true,true);

Возвращаемое значение SetSystemPowerState: TRUE - режим включен.
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><!--coloro:red--><span style="color:red"><!--/coloro-->все беды - от недостатка информации<!--sizec--></span><!--/sizec--><!--colorc--></span><!--/colorc-->
Magister
Генерал-майор
 
Сообщений: 2501
Зарегистрирован: Вт авг 06, 2002 4:22 am
Пункты репутации: 0

Сообщение Separator » Чт сен 19, 2002 6:45 am

В общем ппробуй использовать это:

ShellExecute(Application.Handle, Pchar('Open'),Pchar('C:WindowsRundll32.exe'), Pchar('krnl386.exe,exitkernel'), Pchar('C:Windows'),SW_SHOWNORMAL);


"rundll32 shell32,Control_RunDLL" - Выводит "Панель управления"
"rundll32 shell32,OpenAs_RunDLL" - Выводит окошко - "Открыть с помощью.."
"rundll32 shell32,ShellAboutA Info-Box" - Покозать окно "About Windows"
"rundll32 shell32,Control_RunDLL desk.cpl" - Открыть "Свойства Экрана"
"rundll32 user,cascadechildwindows" - Сортировка окон "Каскадом" (Как в Win 3.x)
"rundll32 user,tilechildwindows" - Сместить Окна в низ
"rundll32 user,repaintscreen" - Обновить рабочий стол
"rundll32 shell,shellexecute Explorer" - Запустить проводник Windows.
"rundll32 keyboard,disable" - Вырубить Клавиатуру! (Вот Это я понимаю Заподло!)
"rundll32 mouse,disable" - Вырубить Мышь! (У Шефа Будет припадок:)))
"rundll32 user,swapmousebutton" - Поменять Местами клавиши Мыша! (Во мля! и этого Дядя Билли не забыл!)
"rundll32 user,setcursorpos" - Сместить курсор крысы в левый верхний угол
"rundll32 user,wnetconnectdialog" - Вызвать окно "Подключение сетевого диска"
"rundll32 user,wnetdisconnectdialog" - Вызвать окно "Отключение сетевого диска"
"rundll32 user,disableoemlayer" - Спровоцировать сбой!!! (Знаю, сам сразу не поверил, но это FUсKт...)
"rundll32 diskcopy,DiskCopyRunDll" - Показать окно "Copy Disk"
"rundll32 rnaui.dll,RnaWizard" - Вывод окна "Установка Связи", с ключем "/1" - без окна
"rundll32 shell32,SHFormatDrive" - Окно "Форматирование: Диск3,5(А)" вызвать
"rundll32 shell32,SHExitWindowsEx -1" - Перегрузить Explorer
"rundll32 shell32,SHExitWindowsEx 1" - Выключение Компутера.
"rundll32 shell32,SHExitWindowsEx 0" - Завершить Работу Текущего Пользователя
"rundll32 shell32,SHExitWindowsEx 2" Windows-98-PC boot
"rundll32 krnl386.exe,exitkernel" - выход из Windows без любых сообщений/вопросов
"rundll rnaui.dll,RnaDial "MyConnect" - Вызвать окошко "Установка связи" с соединением "MyConnect"
"rundll32 msprint2.dll,RUNDLL_PrintTestPage" - выбрать в появившемся меню принтер и послать, а него тест
"rundll32 user,setcaretblinktime" - установить новую частоту мигания курсора
"rundll32 user,setdoubleclicktime" - установить новую скорость двойного нажатия
"rundll32 sysdm.cpl,InstallDevice_Rundll" - установить non-Plug&Play оборудование
Separator
Рядовой
 
Сообщений: 8
Зарегистрирован: Чт сен 19, 2002 3:27 am
Откуда: Алматы
Пункты репутации: 0

Сообщение Magister » Ср сен 25, 2002 5:03 am

Separator, ты вопрос видел?
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><!--coloro:red--><span style="color:red"><!--/coloro-->все беды - от недостатка информации<!--sizec--></span><!--/sizec--><!--colorc--></span><!--/colorc-->
Magister
Генерал-майор
 
Сообщений: 2501
Зарегистрирован: Вт авг 06, 2002 4:22 am
Пункты репутации: 0


Вернуться в Программирование

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

cron