Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 3.617 pregleda

Najnovija ↓

Kako sakriti prozor aplikacije? 11.02.2005. u 15:31 · pre 264 meseca #1
Interesuje me kako pristupiti prozorima (windows) otvorenih aplikacija i po potrebi sakriti ih ili prikazati ikonicu prozora. Probao sam ovo sa EnumWindows() i EnumWindowsProc() i dobijem sve aplikacije a meni trebaju samo one koje imaju prozore...

Gledao sam neki primjer koji skriva taskbar i to radi pozivajuci:

Code:
ShowWindow(FindWindow("Shell_TrayWnd", NULL), SW_HIDE);

Znaci pristupa prozoru preko naziva klase prozora, a meni treba spisak svih prozora na desktopu koje onda mogu zasebno skrivati ili prikazivat.

Kako pristupiti desktopu i ikonama na njemu i kako ih sakriti.
Da li je potrebno koristiti GetDesktopWindow() ... i sta jos...

Mogu li ovo rijesiti VCL kontrolama u Borland c++ Builderu ili moram pozivati win API.
Ima li kakvih tutorijala ili tekstova na ovu temu gdje bi se mogao naci koji primjer...

Hvala!

//
...?

Re: Kako sakriti prozor aplikacije? 11.02.2005. u 16:21 · pre 264 meseca #2
Ako koristis Borland C++ Builder 6, *o b a v e z n o* pogledaj:

[url]
http://www.sysinternals.com
[/url]

Imas primere (sa sve kodom) za mnoge sistemske enumeracije,
pa i za tvoj slucaj, i jos razvrstano po OS-u!

Bolje gledaj sam, nego da se 'mucimno' ovde.
Re: Kako sakriti prozor aplikacije? 13.02.2005. u 01:25 · pre 264 meseca #3
Koristio sam slijedeci kod:
Code:

void __fastcall TForm1::Button3Click(TObject *Sender)
{
 ListBox1->Clear();
 EnumWindows((WNDENUMPROC)EnumWindowsProc,(LPARAM)ListBox1);
}
//---------------------------------------------------------------------------

bool CALLBACK EnumWindowsProc(HWND hWnd, TListBox * ListBox1)
{
   char name[256];
   if(!GetWindow(hWnd, GW_OWNER))
  {
    GetWindowText(hWnd, name, 255);
    if (AnsiString(name).Trim() != EmptyStr)
       ListBox1->Items->Add(name);
  }
  return true;
}

Ovim kodom sam popunio ListBox. Dobio sam puno vise "prozora" nego sto ih imam otvorenih, tj. upisano je i ono sto stoji u tray-u i jos svega necega...

Pitanje: Kako da se rijesim svega osim prozora koji su otvoreni i kako da dobijem njihove ikonice, znaci da pored naziva stavim i ikonicu prozora u ListBox?

Pored svega ovoga probao sam da sakrijem neke od prozora koje sam dobio gornjim kodom, sto mi je uspjevalo no nije se skrivala ikonica na taskbaru (kao -> moglo se minimizirati i maximizirati no nema prozora). Koristio sam slijedeci kod:
Code:

void __fastcall TForm1::ListBox2DblClick(TObject *Sender)
{
  AnsiString Name = reinterpret_cast<TListBox*>(Sender)->Items->Strings[ListBox2->ItemIndex];
  HWND h = FindWindow(0, Name.c_str());
  ShowWindow(h, SW_HIDE);

}


Pitanje: Kako rijesiti da kad sakrije prozor da sakrije i ikonicu na taskbaru?

Hvala.

//
...?
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme