W jaki sposób można przywrócić aplikację na wierzch, gdy ukryta jest w Tray'u i schowana ikona programu z paska zadań. Tzn udało mi się przywrócić na wierzch program jednak ikona w pasku zadań nadal jest ukryta przez co nie mogę ponownie zminimalizować okna.
KOD cpp: UKRYJ
void BringWindowToFront(HWND hWnd)
{
bool Result;
DWORD ForegroundWindowThreadID;
DWORD WindowThreadID;
if(hWnd != GetForegroundWindow())
{
ForegroundWindowThreadID = GetWindowThreadProcessId(GetForegroundWindow(), NULL);
WindowThreadID = GetWindowThreadProcessId(hWnd, NULL);
if(ForegroundWindowThreadID != WindowThreadID)
{
AttachThreadInput(ForegroundWindowThreadID, WindowThreadID, true);
SetForegroundWindow(hWnd);
AttachThreadInput(ForegroundWindowThreadID, WindowThreadID, false);
}
else
SetForegroundWindow(hWnd);
ShowWindow(hWnd, SW_RESTORE);
}
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
HWND h = FindWindow(L"TForm1", L"Form1");
if(h != 0)
{
BringWindowToFront(h);
Application->Terminate();
}
}
{
bool Result;
DWORD ForegroundWindowThreadID;
DWORD WindowThreadID;
if(hWnd != GetForegroundWindow())
{
ForegroundWindowThreadID = GetWindowThreadProcessId(GetForegroundWindow(), NULL);
WindowThreadID = GetWindowThreadProcessId(hWnd, NULL);
if(ForegroundWindowThreadID != WindowThreadID)
{
AttachThreadInput(ForegroundWindowThreadID, WindowThreadID, true);
SetForegroundWindow(hWnd);
AttachThreadInput(ForegroundWindowThreadID, WindowThreadID, false);
}
else
SetForegroundWindow(hWnd);
ShowWindow(hWnd, SW_RESTORE);
}
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
HWND h = FindWindow(L"TForm1", L"Form1");
if(h != 0)
{
BringWindowToFront(h);
Application->Terminate();
}
}