Novo

Forum kao aplikacija na telefonu

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

  • 7 odgovora
  • 3.898 pregleda

Najnovija ↓

Dohvatanje handle-a prozora u taskbar-u.. Kako ? 19.11.2008. u 09:44 · pre 218 meseci #1
Da li je moguce ikako pohvatati hanlde-ove prozora pokrenutih aplikacija ?
Jedan od nacina koji sam provalio je da se nadju svi procesi koji imaju WindowHandle, ali to ne vraca prozore Explorera.
Recimo ako imam otvorena dva foldera i pokrenute jos neke aplikacije, na ovaj nacin dobijam samo handle-ove tih aplikacija, a ne znam kako jos da pohvatam i prozore ta dva foldera koja su otvorena tj. njihova hanlde-ove.

Da li neko ima ideju kako bi ovo moglo da se izvede ?
Potpis
DEJ@N
Re: Dohvatanje handle-a prozora u taskbar-u.. Kako ? 19.11.2008. u 09:58 · pre 218 meseci #2
Mozes kroz API sa nekom od FindWindow, FindWindowEx i EnumWindows funkcijama, pogledaj MSDN pa javi ako ti treba jos pomoci
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Dohvatanje handle-a prozora u taskbar-u.. Kako ? 19.11.2008. u 12:11 · pre 218 meseci
izmenjeno 2 puta, poslednji put deerbeer 19.11.2008. u 12:35
  1. deerbeer19.11.2008. u 12:35zapis iz teksta poruke
  2. deerbeer19.11.2008. u 12:34zapis iz teksta poruke
#3
Da... sa EnumWindows protrci kroz sve prozore (dobijas njihove handlove)
pa sa GetClassName u Enum proceduri gadjaj explorer instance preko Name-a "CabinetWClass"
Potpis
Viva lollapalooza
Re: Dohvatanje handle-a prozora u taskbar-u.. Kako ? 20.11.2008. u 10:05 · pre 218 meseci #4
Super je ovo, dobijem sve handlove, ali opet ne mogu da prepoznam sta je sta, koji je prozor explorer-a, a koji pripada aplikacijama koje su minimizovane a koji sve ostalo

Ovo je testna aplikacija u koju sam sve ovo ubacio

http://www33.websamba.com/helpers/source/ApiTests.zip
Potpis
DEJ@N
Re: Dohvatanje handle-a prozora u taskbar-u.. Kako ? 20.11.2008. u 11:02 · pre 218 meseci #5
Code:

  Private Shared Function EnumWindow(ByVal Handle As IntPtr, ByVal Parameter As IntPtr) As Boolean
        Dim ChildrenList As List(Of IntPtr) = GCHandle.FromIntPtr(Parameter).Target
        If ChildrenList Is Nothing Then Throw New Exception("GCHandle Target could not be cast as List(Of IntPtr)")
        ChildrenList.Add(Handle)
        Return True
    End Function


Ovo je ok samo sto ubacujes u listu sve prozore ..
Dodaj jos win api f-ju :

Code:

Private Shared Sub GetClassName(ByVal hWnd As System.IntPtr, _
   ByVal lpClassName As System.Text.StringBuilder, ByVal nMaxCount As Integer)
End Function


Pa bi onda tvoja EnumWindow procedura trebalo ovako nesto da izgleda ,
Nisam testirao ali svejedno probaj :
Code:

Private Shared Function EnumWindow(ByVal Handle As IntPtr, ByVal Parameter As IntPtr) As Boolean
    
    Dim ChildrenList As List(Of IntPtr) = GCHandle.FromIntPtr(Parameter).Target
    Dim Res As IntPtr ; 
    Dim ClassName As New StringBuilder(100)
    Res = GetClassName(Handle , ClassName, ClassName.Capacity)
  
  //instanca win explorera .. 
   If String.Compare(ClassName.ToString(), "CabinetWClass",True,CultureInfo.InvariantCulture) = 0 Then 
      ChildrenList.Add(Handle)     
   Return True
End Function



Classname od bilo kog programa mozes uvek da saznas ako pokrenes utility VS2005 Spy++ koji ti daje informacije o svim pokrenutim aplikacijama
prozorima , Thread-id itd ....



Pozdrav!!!




Potpis
Viva lollapalooza
Re: Dohvatanje handle-a prozora u taskbar-u.. Kako ? 25.11.2008. u 18:24 · pre 218 meseci #8
^
Eh.. moj "razvojni" put je isao dosta cudno :)
prvo c++, pa c#, pa vb i vb.net pa opet se vratio na c++ .
U jednoj firmi gde sam ranije radio su furali vb i vb.net pa sam morao da ga znam :)

Potpis
Viva lollapalooza
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme