Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TaskBar, Alt+Tab


vain ©   (2006-12-15 14:14:00) 

Вопрос. Как сделать так, чтобы программа никак не обозначалась ни на таскбаре, ни в альттабе?
Нашел на delphimaster'e:

program Project1;
uses
 Forms,
 Windows,
 Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
var
ExtendedStyle : integer;
begin
 Application.Initialize;
 ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE);
 SetWindowLong(Application.Handle, GWL_EXSTYLE,
   ExtendedStyle or WS_EX_TOOLWINDOW {AND NOT WS_EX_APPWINDOW});
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.


Попробовал - из таскбара прячет, из альттаба - нет.

Ещё вопрос. Есть такая функция ShowWindow. В справке написано:

The ShowWindow function sets the specified window's show state.

BOOL ShowWindow(

   HWND hWnd, // handle of window
   int nCmdShow  // show state of window
  );


Parameters

hWnd

   Identifies the window.


Но я втречал такое:
ShowWindow(Application.Handle, SW_HIDE)
Таким образом прячется программа с таскбара... Но ведь первый параметр - это хендл окна? Насколько я понял эта функция предназначена для окон, а не для приложений?


sicilla   (2006-12-17 23:39:00) [1]

Найди какой-нибудь компонент для работы с Tray, брось на форму, настрой его, и тогда все что хочешь, у тебя получится (У меня работает, проверил).  Кроме диспетчера задач. Оттуда надо будет уже постараться убрать твою задачу.
Могу посоветовать CoolTray или JVCL320CompleteJCL197 (очень крутой набор компнентов)


vain   (2006-12-17 18:09:00) [2]


> antonn ©   (16.12.06 22:44) [10]
>
> я фигею...
> автор, попробуй в коде в своем первом посте убрать фигурные
> скобки...
>

Гы...
Да это я просто по-всякому старался: ставил, убирал. Вот и получилось, что в таком виде прислал:)


antonn   (2006-12-16 22:44:00) [3]

я фигею...
автор, попробуй в коде в своем первом посте убрать фигурные скобки...


BOB16   (2006-12-16 22:21:00) [4]

Могет подойдёт: http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=45183


vain   (2006-12-15 19:24:00) [5]


> на 98-й винде

Да нме б в XP
:((((((((((((((((
А как же WinAmp работает?!!


umbra   (2006-12-15 16:36:00) [6]

на 98-й винде следующий код делает то, что надо, но у формы нет кнопок для сворачивания.разворачивания и максимизации

procedure TForm1.FormCreate(Sender: TObject);
var
 ExtStyle: Integer;

begin
 ExtStyle := GetWindowLong(Handle, GWL_EXSTYLE);
 SetWindowLong(Handle, GWL_EXSTYLE, ExtStyle or WS_EX_TOOLWINDOW);
 ExtStyle := GetWindowLong(Application.Handle, GWL_EXSTYLE);
 SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtStyle or WS_EX_TOOLWINDOW);
end;


vain   (2006-12-15 16:14:00) [7]


> а из TaskManager'a надо прятать?

Да, но с этим я уже справился.
>
> DVM ©
> А у приложений нет хэндлов
>

Уже понял из [1]


DVM   (2006-12-15 16:05:00) [8]


> Насколько я понял эта функция предназначена для окон, а
> не для приложений?

А у приложений нет хэндлов


alex_***   (2006-12-15 16:03:00) [9]

а из TaskManager'a надо прятать?


vain   (2006-12-15 15:59:00) [10]


> BOB16   (15.12.06 15:31) [2]
>
> Где-то встречал такое: может стоит порыться в ?:
> integer i:=0;
> SystemParametersInfo(SPI_SETFASTTASKSWITCH, 1, @i, 0);

Увы, это работает только до WinNT4.0


BOB16   (2006-12-15 15:31:00) [11]

Где-то встречал такое: может стоит порыться в ?:
integer i:=0;
SystemParametersInfo(SPI_SETFASTTASKSWITCH, 1, @i, 0);


umbra   (2006-12-15 14:28:00) [12]

программы на делфи, использующие формы VCL создают невидимое окно, представляющее объект Application.


Наверх

Титульная страница Поиск, карта сайта Написать письмо