Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.041 c
14-1116690237
Nikolay M.
2005-05-21 19:43
2005.06.14
Кто помнит, как добраться до места прошлогодней MMP?


1-1117546092
Roo
2005-05-31 17:28
2005.06.14
Горизонт. скроллинг в лист-боксе


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


1-1117455751
Still Swamp
2005-05-30 16:22
2005.06.14
Подмена хэндла


14-1116786734
Gero
2005-05-22 22:32
2005.06.14
Явное обострение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский