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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2009, 16:13   #1
marina15056
Пользователь
 
Регистрация: 17.04.2009
Сообщений: 68
По умолчанию незакрывающаяся программа

1. Возможно ли у диспетчера задач отключить свойство fsStayOnTop (по аналогии с Form)?
2. Можно ли при запуске программы перевести панель задач в скрытный режим?
3. Как заблокировать ALF или F4, или оба вместе, для моей программы?

И как п.1 и п.2 вернуть обратно после завершения определенного цикла в программе?

ЗЫ: Это принудительная зубрилка слов и клавиатурный тренажер в одном флаконе для моих детей.

ЗЫЫ: Заранее спасибо.
marina15056 вне форума Ответить с цитированием
Старый 06.10.2009, 16:15   #2
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

В событии OnCloseQuery для формы напишите код:
CanClose := false;
Манжосов Денис :) вне форума Ответить с цитированием
Старый 06.10.2009, 16:21   #3
marina15056
Пользователь
 
Регистрация: 17.04.2009
Сообщений: 68
По умолчанию

Цитата:
Сообщение от Манжосов Денис :) Посмотреть сообщение
В событии OnCloseQuery для формы напишите код:
CanClose := false;
здорово )
CanClose это сила.
marina15056 вне форума Ответить с цитированием
Старый 06.10.2009, 16:43   #4
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Код:
ShowWindow(StartBtnWnd, SW_HIDE);
скрывает панель
Код:
ShowWindow(StartBtnWnd, SW_show);
показывает обратно
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 07.10.2009, 16:44   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Не работает этот код.
FaTaL вне форума Ответить с цитированием
Старый 07.10.2009, 16:51   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
1. Возможно ли у диспетчера задач отключить свойство fsStayOnTop (по аналогии с Form)?
- можно проще, выводите по таймеру постоянно ваше окно поверх всех или вы ищите защиту от ctr+alt+del ?

Цитата:
2. Можно ли при запуске программы перевести панель задач в скрытный режим?
- зачем трогать панель задач, переведите форму в maximized, и оно будет на весь экран
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 07.10.2009, 17:01   #7
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

У меня так вышло:
Код:
//Скрыть
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowWindow($1008A, SW_HIDE);
ShowWindow($10086, SW_HIDE);
ShowWindow($3006E, SW_HIDE);
ShowWindow($10082, SW_HIDE);
ShowWindow($3005A, SW_HIDE);
end;
//Показать
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowWindow($1008A, SW_show);
ShowWindow($10086, SW_show);
ShowWindow($3006E, SW_show);
ShowWindow($10082, SW_show);
ShowWindow($3005A, SW_show);
end;
Но зачем? Можно просто растянуть форму или запустить её в полноэкранном режиме.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 08.10.2009, 19:53   #8
marina15056
Пользователь
 
Регистрация: 17.04.2009
Сообщений: 68
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
- можно проще, выводите по таймеру постоянно ваше окно поверх всех или вы ищите защиту от ctr+alt+del ?
Я это сделала, но может коряво, программа мерцает, и это отвлекает.
Да, я хочу запретить детям выключить программу с помощью диспетчера задач. Я просто подумала, что если он будет всегда под окном программы, то и проблема будет решена.

поиск показал, что получить доступ к диспетчеру задач можно с помощью фукции FindWindow, но когда я ввожу #32770 в кавычки функции для получения идентификатора, то получаю какое-то левое окошко. Что нужно вписать туда? У меня ХР

Цитата:
Сообщение от raxp Посмотреть сообщение
- зачем трогать панель задач, переведите форму в maximized, и оно будет на весь экран
Почему-то у меня в этом режиме панель задач всё равно видна.

2 betirsolt
ShowWindow(StartBtnWnd, SW_HIDE);

Я так сделала, правда пришлось добавить переменную и вот это:
StartBtnWnd:=FindWindow('Shell_Tray Wnd', nil);

работает, только внизу остается пустая полоса (файл приложен), а хотелось бы, что бы программа заняла всё пространство экрана. Или я что-то делаю не так?

2 russian-stalker
А что это за код? я его вставила, и при нажатии второй кнопки на панели задач появляется папка, которая ни на что не реагирует, первая кнопка убирает эту папку
Вложения
Тип файла: rar StartBtnWnd.rar (161.6 Кб, 14 просмотров)

Последний раз редактировалось marina15056; 08.10.2009 в 20:19.
marina15056 вне форума Ответить с цитированием
Старый 08.10.2009, 20:35   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
Смех

marina15056.
вот вам рабочий пример (закрыть- Esc, блок на ALT+F4 не ставил) поверх всех и на полный экран... но учтите, так как для выдвижения поверх всех окон, в том числе и диспетчера задач, по таймеру осуществляется вызов SetWindowPos, то если у вас будет на форме скажем popupmenu, то наша форма и его перекроет... хотя можно обрабатывать вызов меню и блокировать на этот момент таймер... ну, это нюансы...

вопрос, а вы методику Зайцева по слогам закладывать будете... просто для своего ребенка я тож делал щось таке (на сайте у мэне- "Если ребенок не хочет учить буквы... говорящий алфавит"), проверка нажатой клавиши на клаве по сказанному вслух и показанному на экране как англ так и русский, но пока без зайцева (ну правда так жестко окна не блокировал, не вижу смысла... ибо лазеек полно остается, проще под присмотром )
Вложения
Тип файла: zip fullscreen.zip (188.5 Кб, 21 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 08.10.2009 в 20:42.
raxp вне форума Ответить с цитированием
Старый 08.10.2009, 21:24   #10
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Как вариант:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if getforegroundwindow<>handle then
begin
CloseWindow(getforegroundwindow);
setfocus;
end;
end;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[PASCAL]Программа создания файла, программа обработки файла Виколяшка Фриланс 7 23.09.2009 17:38
Программа создания файла, программа обработки файла [PASCAL] Виколяшка Помощь студентам 1 22.09.2009 22:56
Программа Fartyna3000 Операционные системы общие вопросы 4 07.12.2008 20:36