Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dohvatanje handle-a prozora u taskbar-u.. Kako ?

[es] :: .NET :: .NET Desktop razvoj :: Dohvatanje handle-a prozora u taskbar-u.. Kako ?

[ Pregleda: 2856 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sulja
Dejan Stojanovic
Pozarevac

Član broj: 1140
Poruke: 91
212.200.27.*

Sajt: www.anthill.co.rs


Profil

icon Dohvatanje handle-a prozora u taskbar-u.. Kako ?19.11.2008. u 08:44 - pre 187 meseci
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 ?
DEJ@N
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Dohvatanje handle-a prozora u taskbar-u.. Kako ?19.11.2008. u 08:58 - pre 187 meseci
Mozes kroz API sa nekom od FindWindow, FindWindowEx i EnumWindows funkcijama, pogledaj MSDN pa javi ako ti treba jos pomoci
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ć
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-1.sezampro.yu.



+395 Profil

icon Re: Dohvatanje handle-a prozora u taskbar-u.. Kako ?19.11.2008. u 11:11 - pre 187 meseci
Da... sa EnumWindows protrci kroz sve prozore (dobijas njihove handlove)
pa sa GetClassName u Enum proceduri gadjaj explorer instance preko Name-a "CabinetWClass"


[Ovu poruku je menjao deerbeer dana 19.11.2008. u 12:34 GMT+1]

[Ovu poruku je menjao deerbeer dana 19.11.2008. u 12:35 GMT+1]
Viva lollapalooza
 
Odgovor na temu

sulja
Dejan Stojanovic
Pozarevac

Član broj: 1140
Poruke: 91
212.200.27.*

Sajt: www.anthill.co.rs


Profil

icon Re: Dohvatanje handle-a prozora u taskbar-u.. Kako ?20.11.2008. u 09:05 - pre 187 meseci
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
DEJ@N
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-a-1.sezampro.yu.



+395 Profil

icon Re: Dohvatanje handle-a prozora u taskbar-u.. Kako ?20.11.2008. u 10:02 - pre 187 meseci
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!!!





Viva lollapalooza
Prikačeni fajlovi
 
Odgovor na temu

sulja
Dejan Stojanovic
Pozarevac

Član broj: 1140
Poruke: 91
212.200.27.*

Sajt: www.anthill.co.rs


Profil

icon Re: Dohvatanje handle-a prozora u taskbar-u.. Kako ?20.11.2008. u 12:51 - pre 187 meseci
Odlicno, to je bas ono sto mi treba, hvala
DEJ@N
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
*.dynamic.sbb.rs.



+7 Profil

icon Re: Dohvatanje handle-a prozora u taskbar-u.. Kako ?25.11.2008. u 14:27 - pre 187 meseci
@deerbeer
Nisam znao da znas VB :) ... svaka cast kolega
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-3.sezampro.yu.



+395 Profil

icon Re: Dohvatanje handle-a prozora u taskbar-u.. Kako ?25.11.2008. u 17:24 - pre 187 meseci
^
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 :)


Viva lollapalooza
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Dohvatanje handle-a prozora u taskbar-u.. Kako ?

[ Pregleda: 2856 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.