Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как убрать программу с панели задач

9.0K
03 декабря 2006 года
mr_smit
64 / / 03.12.2006
Люди, помогите. Как убрать программу с панели задач? Т. е. чтобы форма на экране была видна но на панели задач её не было. А то сделал часы для рабочего стола (с возмоможностью прятать их в Tray) и хочется чтобы были
видны только они. Только не пишите что то типа:

ShowWindow(FindWindow(nil,'Program Manager'),SW_HIDE);

ShowWindow (Application.handle, SW_HIDE);

hTaskbar := FindWindow('Shell_TrayWnd', Nil);
ShowWindow(hTaskBar, SW_HIDE);

это не помогает.:confused:
334
04 декабря 2006 года
HexEdit
809 / / 27.07.2006
Попробуй посмотреть тут: http://forum.codenet.ru/showthread.php?t=31979
19K
04 декабря 2006 года
Релорт
17 / / 14.09.2006
procedure TYourForm.HideFromAppList();
var
es: Integer;
begin
es := GetWindowLong(Application.Handle, GWL_EXSTYLE);
es := es or (not WS_EX_APPWINDOW);
SetWindowLong(Application.Handle, GWL_EXSTYLE, es);
es := GetWindowLong(YourForm.Handle, GWL_EXSTYLE);
es := es or WS_EX_TOOLWINDOW;
SetWindowLong(YourForm.Handle, GWL_EXSTYLE, es);
end;
9.0K
07 декабря 2006 года
mr_smit
64 / / 03.12.2006
Релорт, твой код не помогает. Он скрывает программу только из Alt+Tab, а на панели задач она так и остается.:confused:
19K
07 декабря 2006 года
Релорт
17 / / 14.09.2006
Странно. У меня вообще:
 
Код:
es := GetWindowLong(Application.Handle, GWL_EXSTYLE);
es := es or (not WS_EX_APPWINDOW);
SetWindowLong(Application.Handle, GWL_EXSTYLE, es);

приводят к ожидаемому результату :)
Ты избранный :)
355
07 декабря 2006 года
<SCORP>
786 / / 21.10.2006
2Релорт
странно вообще как оно у тебя к ожидаемому результату приводит, когда там надо не or not WS_EX_APPWINDOW, a and not WS_EX_APPWINDOW
547
07 декабря 2006 года
Hydra
488 / / 20.06.2006
оно?
Код:
bool __fastcall TBSetState(HWND hwnd,int status)
{ ITaskbarList *pITaskbarList;
  if (!hwnd) return false;
  CoInitialize(NULL);
  HRESULT hr=CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER,
                        IID_ITaskbarList, (void**)&pITaskbarList);
  if (FAILED(hr)) return false;
  hr=pITaskbarList->HrInit();
  if (SUCCEEDED(hr))
   switch(status)
    { case 0: hr=pITaskbarList->DeleteTab(hwnd); break;
      case 1: hr=pITaskbarList->AddTab(hwnd);  break;
      case 2: hr=pITaskbarList->ActivateTab(hwnd);  break;
      case 3: hr=pITaskbarList->SetActiveAlt(hwnd);  break; }
  pITaskbarList->Release();
  CoUninitialize();
  if (FAILED(hr)) return false; // Cmd error
  return true;
}
355
08 декабря 2006 года
<SCORP>
786 / / 21.10.2006
а не сильно ли это жёстко? помоему, отнимание у окна WS_EX_APPWINDOW хватает с головой....
547
08 декабря 2006 года
Hydra
488 / / 20.06.2006
2<SCORP>
Не всегда. Если приложение многооконное, то там некоторые артифакты всплывают.
23K
10 декабря 2006 года
realt
2 / / 10.12.2006
Хм, странно... А не проще ли так:
 
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowWindow(Handle, SW_HIDE);
ShowWindow(Application.Handle, SW_HIDE);
end;

;)
303
11 декабря 2006 года
makbeth
1.0K / / 25.11.2004
А что, вот это уже не работает:
 
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
    Hide;
end;
9.0K
12 декабря 2006 года
mr_smit
64 / / 03.12.2006
Прикинте вот это помогло:

procedure TForm1.FormShow(Sender: TObject);
begin
ShowWindow(Handle, SW_HIDE);
ShowWindow(Application.Handle, SW_HIDE);
end;

Realt ты гений
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог