Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.14;
Скачать: CL | DM;

Вниз

Как спрятать програму от Alt+Tab   Найти похожие ветки 

 
anjey   (2005-04-20 15:08) [0]

Как спрятать програму от Alt+Tab?
при этом форма проги должна остатся видимой


 
alpet ©   (2005-04-20 15:23) [1]


procedure TForm1.FormShow(Sender: TObject);
var h: THandle;
begin
ShowWindow (application.Handle, sw_hide);
h := FindWindow (nil, "Program Manager");
windows.setparent (handle, h);
end;


 
anjey   (2005-04-20 15:42) [2]

все конечно работает
но теперь вопрос как установить для формы параметры (поверх всех окон и т.д.)?


 
alpet ©   (2005-04-20 16:08) [3]

WINAPI:
SetWindowPos (form1.handle, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOSIZE or SWP_NOMOVE);
VCL:

procedure TForm.FormCreate (Sender: TObject);
begin
FormStyle := fsStayOnTop;
end;


 
anjey   (2005-04-20 16:33) [4]

мда ...
вот такая бойда у меня
есть основная форма (при запуске невидима) на ней куча всяких настроек (вызывается из трея) в частности как должна выглядеть вторая форма (поверх всех окон или нет, прозрачная - или нет)
вторая форма видима - на ней отображается текущее время и пр.
из панели задач обе формы я убрал, но  все они видны через Alt+Tab при отображении  на экране
тобиш

.....
MainForm.FormCreate(Sender: TObject);
begin
 // непоказывать окно приложения
 Application.ShowMainForm := False;
 // скрыть окна из панели задач
 SetWindowLong (Application.Handle,GWL_EXSTYLE,NOT WS_EX_APPWINDOW);
 ....
end;

во втром модуле кроме обработчика события на таймере ничего нет
при использовании
h := FindWindow (nil, "Program Manager");
windows.setparent (handle, h);

все попытки настроить вид второй формы бесполезны


 
alpet ©   (2005-04-20 17:26) [5]

SetWindowLong убери - ты не прочитал справку, а функцию уже добавил. Более того, какой бы ты стиль не задал окну из списка "Окон приложений" ты его не уберешь. Это определяется прежде всего отношениями окон. Если у видимого окна нет родителя, оно имеет все шансы в этот список попасть.


 
alpet ©   (2005-04-20 17:28) [6]

Чтобы убрать и вторую форму к строкам

h := FindWindow (nil, "Program Manager");
windows.setparent (handle, h);

добавь

windows.setparent (form2.handle, h);


 
anjey   (2005-04-21 10:01) [7]

я немного поиграл с параметрами SetWindowLong (без windows.setparent)
вроде получается тока есть пару но
- вид основного окна как у окна инструментов
- при включении поверх всех окон все настройки сбрасываются и форма видна по Alt+Tab

 // непоказывать окно приложения
 Application.ShowMainForm := False;
 SetWindowLong (Application.Handle,GWL_EXSTYLE,NOT (WS_EX_APPWINDOW ));
 SetWindowLong (Основная форма.Handle,GWL_EXSTYLE, GetWindowLong (Основная форма,GWL_EXSTYLE) OR WS_EX_TOOLWINDOW);
 SetWindowLong (Вторая форма.Handle,GWL_EXSTYLE, GetWindowLong (Вторая форма.Handle,GWL_EXSTYLE) OR WS_EX_TOOLWINDOW);



Страницы: 1 вся ветка

Текущий архив: 2005.06.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
3-1115275908
sergg
2005-05-05 10:51
2005.06.14
Установка фильтра в TADOTable


14-1116852395
Andryk
2005-05-23 16:46
2005.06.14
Гимн гаишников )))))))


14-1116941061
Cosinus
2005-05-24 17:24
2005.06.14
Не могу вспомнить название программы... Помогите.


9-1110814362
PAV
2005-03-14 18:32
2005.06.14
Тайлы на ландшафте


14-1117146909
jcrush
2005-05-27 02:35
2005.06.14
У кого есть готовые решения по работе с RSS ?