Форум: "WinAPI";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
ВнизКак спрятать програму от 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c