Вопрос по Delphi 7?

Список разделов Общие разделы Цифровой мир

Описание: Вопросы о компьютерах, сетях, спутниковом ТВ и т.д.

Сообщение #1 VeTeR » 04.10.2007, 16:08

У меня есть пару вопросов:
1. Какая команда или процедура при выполнении выключает компьютер?
2. Как сделать чтобы написанная тобою программа не закрывальсь при нажатии "Alt + F4"?
3. Как сделать чтобы до тех пор пока твоя программа работает на компе ничего нельзя было сделать(Нажать "Пуск"; открыть другие программы; и т.д.)?
Help my!!!
Жизнь даётся один раз, и прожить её надо на все 100%
VeTeR M
Автор темы
500+ сообщений
Возраст: 33
Откуда: Слуцк
Зарегистрирован: 10.03.2007

Сообщение #2 Veleslav » 04.10.2007, 16:29

По делфи - http://www.delphikingdom.com/

1. иногда пользуюсь консольной shutdown с параметрами
2. Обработка соответствующего события
3. ммм... конкретно какого эффекта ты хотел? Сожрать все ресурсы, подвесив комп?

ггг, не хочешь дать кому-то нормально работать за компом?..

добавлено спустя:
Добавь в обработчик формы OnClose следующий код (приведен вместе с шаблоном процедуры):

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := Forms.caNone;
end;
Гастарбайтер
Veleslav
1000+ сообщений
Аватара
Возраст: 38
Откуда: Рейхстаг
Зарегистрирован: 19.06.2006

Сообщение #3 VeTeR » 04.10.2007, 16:40

Veleslav:ммм... конкретно какого эффекта ты хотел?
Чтобы пользователь не мог ни чего сделать пока не выполнит условий программы
Veleslav:Сожрать все ресурсы, подвесив комп?
Нее....
Veleslav:ггг, не хочешь дать кому-то нормально работать за компом?..
Нет это для себя, дело в том что мне при поступленны нужна физика, а я вместо того чтобы учить физику сижу за компом, вот я и придумал написать прогу, что бы когда включаеться комп, прежде чем начать на нём работать надо пройти случайный тест по физике, программа готова, а вот некоторые ньюансы...
Вот так... :smilebig:

добавлено спустя 1 минуту:
Veleslav:procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := Forms.caNone;
end;
А как потом закрыть программу?
Жизнь даётся один раз, и прожить её надо на все 100%
VeTeR M
Автор темы
500+ сообщений
Возраст: 33
Откуда: Слуцк
Зарегистрирован: 10.03.2007

Сообщение #4 VEG » 04.10.2007, 16:46

VeTeR:1. Какая команда или процедура при выполнении выключает компьютер?
Пользуйся WinAPI функцией ExitWindows.
http://msdn2.microsoft.com/en-us/library/aa376868.aspx

Вообще оригинально конечно ты придумал. Не думаю что игра стоит свеч. Тем более если сам делал — сам же будешь точно знать как обойти защиту.
С наилучшими пожеланиями, Евгений
VEG M
Администратор
Администратор
Аватара
Возраст: 36
Откуда: Финляндия
Зарегистрирован: 24.07.2004

Сообщение #5 Veleslav » 04.10.2007, 16:52

Ну проще тогда взять кувалду и разбить его накуй... Если нет силы воли и осознания необходимости...
Гастарбайтер
Veleslav
1000+ сообщений
Аватара
Возраст: 38
Откуда: Рейхстаг
Зарегистрирован: 19.06.2006

Сообщение #6 VeTeR » 04.10.2007, 16:54

VEG:http://msdn2.microsoft.com/en-us/library/aa376868.aspx
Спасибо конечно, но я англиским не дружи :sad:
Жизнь даётся один раз, и прожить её надо на все 100%
VeTeR M
Автор темы
500+ сообщений
Возраст: 33
Откуда: Слуцк
Зарегистрирован: 10.03.2007

Сообщение #7 Veleslav » 04.10.2007, 16:58

а отсылать его к мсдн - бесполезно. начинающие дельфисты не знают, что такое winapi...

добавлено спустя 1 минуту:
...и msdn

добавлено спустя 1 минуту:
... потому что с решаемыми задачами и умениями оно обычно им не надо...
Гастарбайтер
Veleslav
1000+ сообщений
Аватара
Возраст: 38
Откуда: Рейхстаг
Зарегистрирован: 19.06.2006

Сообщение #8 VeTeR » 04.10.2007, 16:59

Veleslav:а отсылать его к мсдн - бесполезно. начинающие дельфисты не знают, что такое winapi...
Во, во...
мне бы чё по проще
Жизнь даётся один раз, и прожить её надо на все 100%
VeTeR M
Автор темы
500+ сообщений
Возраст: 33
Откуда: Слуцк
Зарегистрирован: 10.03.2007

Сообщение #9 Veleslav » 04.10.2007, 17:06

проще - кувалада
Гастарбайтер
Veleslav
1000+ сообщений
Аватара
Возраст: 38
Откуда: Рейхстаг
Зарегистрирован: 19.06.2006

Сообщение #10 VeTeR » 04.10.2007, 18:22

Veleslav:проще - кувалада
Ха-ха, я серьёзно.
Жизнь даётся один раз, и прожить её надо на все 100%
VeTeR M
Автор темы
500+ сообщений
Возраст: 33
Откуда: Слуцк
Зарегистрирован: 10.03.2007

Сообщение #11 Veleslav » 05.10.2007, 13:27

Специализированные ресурсы - там таких вопросов от таких же миллионы. Это простой путь.
Не очень простой путь, но верный - RTFM
Гастарбайтер
Veleslav
1000+ сообщений
Аватара
Возраст: 38
Откуда: Рейхстаг
Зарегистрирован: 19.06.2006

Сообщение #12 Beholder » 08.10.2007, 12:57

Грамотное выключение компьютера под NT, просто вызываешь в нужном месте эту процедурку
Код: Выделить всё
Procedure PowerOff;
var
 tkp:TOKEN_PRIVILEGES;
 hToken,c:cardinal;
begin
   OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken);
   LookupPrivilegeValue(nil, 'SeShutdownPrivilege',tkp.Privileges[0].Luid);
   tkp.PrivilegeCount := 1;
   tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
   AdjustTokenPrivileges(hToken, FALSE, tkp, 0,nil, c);
   ExitWindowsEx(EWX_POWEROFF,1);
end;
Beholder
50+ сообщений
Возраст: 44
Зарегистрирован: 25.01.2006


Вернуться в Цифровой мир