Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 104

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Пишу виджет для windows-xp что-то типа стикеров-записной книжки. По сути форма должна всегда быть на рабочем столе, но перекрываться другими окнами. Подскажите как побороть сочетание клавиш винды win+D при котором все программы и моё творение тоже сворачивается?

Александр Думов Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Александр Думов (статус: Посетитель)
Вопрос отправлен: 28 апреля 2012, 01:12
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 7; последнее сообщение — 12 мая 2012, 13:52; участников в обсуждении: 5.
min@y™

min@y™ (статус: Доктор наук), 28 апреля 2012, 08:06 [#1]:

Теоретически нужно не реагировать на сообщение WM_SYSCOMMAND с параметром wParam = SC_MINIMIZE.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot

bugmenot (статус: 3-ий класс), 28 апреля 2012, 11:00 [#2]:

Цитата (min@y™):

сообщение WM_SYSCOMMAND с параметром wParam = SC_MINIMIZE

Вряд ли. WM_SYSCOMMAND это просто команда системного меню.
Обсуждалось здесь - http://stackoverflow.com/questions/9704075/how-to-detect-when-the-form-is-being-maximized
виконання програми розпочинається з того самого мiсця, де призупинилося.

min@y™

min@y™ (статус: Доктор наук), 28 апреля 2012, 11:17 [#3]:

Цитата (bugmenot):

Вряд ли. WM_SYSCOMMAND это просто команда системного меню.

Похоже, ты прав. В принципе, можно поэкспериментировать - писать в лог всё, что приходит в Application.OnMessage, а потом проанализировать.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Вадим К

Вадим К (статус: Академик), 28 апреля 2012, 11:49 [#4]:

Если пользователь нажал Ctrl+D, значит он хочет увидеть рабочий стол. И точка. А то, что некоторые проги хотят все равно быть сверху, они что, лучше? Сказано сворачиваться, значит нужно сворачиваться.
Галочка "подтверждения прочтения" - вселенское зло.
Александр Думов

Александр Думов (статус: Посетитель), 28 апреля 2012, 12:24 [#5]:

буржуи ничего не понимают, там не то что нужнно >_>
сделал так:
procedure TForm1.Restore(Sender: TObject);
begin
Application.Restore;
SetWindowPos(Application.Handle, HWND_BOTTOM, Left,Top,Width,Height,
SWP_NOMOVE or SWP_NOSIZE)
end;
 
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 Application.OnMinimize := Restore;
Application.OnDeactivate := Restore;
 end;
 
procedure TForm1.tmr2Timer(Sender: TObject);
begin
Application.Restore;
end;
таймемер нужен так как все равно иногда win+D пробивает и сворачивает приложение T__T, а так разворачивает.
Phantom

Phantom (статус: Посетитель), 12 мая 2012, 13:30 [#6]:

а как сделать, чтобы прога работала в фоновом режиме, и, желательно была резидентна?
min@y™

min@y™ (статус: Доктор наук), 12 мая 2012, 13:52 [#7]:

Цитата (Phantom):

а как сделать, чтобы прога работала в фоновом режиме, и, желательно была резидентна?

А что твой вопрос делает в этой теме?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:29
Выполнено за 0.03 сек.