|
Вопрос # 6 104/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Пишу виджет для windows-xp что-то типа стикеров-записной книжки. По сути форма должна всегда быть на рабочем столе, но перекрываться другими окнами. Подскажите как побороть сочетание клавиш винды win+D при котором все программы и моё творение тоже сворачивается?
 |
Вопрос задал: Александр Думов (статус: Посетитель)
Вопрос отправлен: 28 апреля 2012, 01:12
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 7; последнее сообщение — 12 мая 2012, 13:52; участников в обсуждении: 5.
|
min@y™ (статус: Доктор наук), 28 апреля 2012, 08:06 [#1]:
Теоретически нужно не реагировать на сообщение WM_SYSCOMMAND с параметром wParam = SC_MINIMIZE.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
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 (статус: Посетитель), 12 мая 2012, 13:30 [#6]:
а как сделать, чтобы прога работала в фоновом режиме, и, желательно была резидентна?
|
|
min@y™ (статус: Доктор наук), 12 мая 2012, 13:52 [#7]:
Цитата (Phantom):
а как сделать, чтобы прога работала в фоновом режиме, и, желательно была резидентна?
А что твой вопрос делает в этой теме?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|