Usuwanie aplikacji z paska zadań

0

Posłużyłem się w moim programie kawałkiem kodu:

int Ex;
Ex=GetWindowLong(Application->Handle, GWL_EXSTYLE);
SetWindowLong(Application->Handle,GWL_EXSTYLE, Ex | WS_EX_TOOLWINDOW & ~WS_EX_APPWINDOW);

(zgodnie z artykułem).
Kod rzeczywiście robi, co potrzeba. Problem w tym, że po zminimalizowaniu aplikacji, w lewym dolnym rogu ekranu pokazuje mi się jakby pasek tytułowy, z nazwą pliku exe, i przyciskiem "zamnkni". Jak usunąć ten "efekt uboczny"?

0

Po prostu w zdarzeniu minimalizacji i przywracania przywracaj standardowe flagi - to sie zminimalizuje do paska. Albo ukrywaj forme - chyba powinno pomoc (tzn nie bedze nigdzie nic widac), tylko wtedy musisz gdzies ta aplikacje dodac - do traya najlepiej, zeby uzytkownik mogl do niej wrocic ;)

0
Ranides napisał(a)

Albo ukrywaj forme

Jak? Form1->Visible=0; nie działa.

Ranides napisał(a)

musisz gdzies ta aplikacje dodac - do traya najlepiej

Tak właśnie robie

0

tzn. Normalnie np. W zdarzeniu ButtonClick() Form1->Visible=0; działa. Ale ja mam tak:

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Application->Run();
Form1->Visible=0;
}

i po kliknięciu na -zamknij- właściwie nie dzieje mi się nic. Dlaczego?

0

Tak się to robi:

#include <windows.h>
#include <shobjidl.h>

void HideTaskbarButton(HWND hwnd) // hwnd mojego okna
{
	CoInitialize(0);
	ITaskbarList *itl;
	if (!CoCreateInstance(CLSID_TaskbarList,0,1,IID_ITaskbarList, (void**)&itl))
	{
		itl->HrInit();
		itl->DeleteTab(hwnd);
		itl->Release();
	}
	CoUninitialize();
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1