hali
upp-ben irok egy progit es olyan dolgot kene megoldanom, hogy
mas alkalmazas allapotat(minimalizalt vagy nem) lekerdezzem
szoval addig eljutottam, hogy meg tudom allapitani, hogy
fut-e az a bizonyos progi, de nem tudom, hogy hogyan lehetne
megszerezni egy adott proceszhez tartozo ablak handlerjat, mert
ugyebar a handler ismereteben mar konnyu lenne a dolgom(IsIconic)
esetleg ha mar valaki talakozott - csinalt ilyet, ne kimeljen :)
koszi
- 1203 megtekintés
Hozzászólások
nem kimelem magamat:))
elso lepesben megszerzem az alkalmazas pid-jet
a
CreateToolhelp32Snapshot
/
FirstProcess32
/
NextProcess32
komboval, majd az alkalmazas
pid-jehez tartozo szalakat a
CreateToolhelp32Snapshot
/
FirstThread32
/
NextThread32
komboval.
ekkor rendelkezesre all az adott alkalmazashoz
tartozo szalak id-je, ugye
az ablakokon "vegigmenni" az
EnumWindows
fuggvennyel lehet. ez egy ujabb fuggvenyt var parameterkent,
amit minden ablak vegrehajt(CALLBACK fuggveny, legalabbis
azt hiszem, hogy ez a CALLBACK lenyege)
a parameterkent megadott fuggveny:
BOOL CALLBACK MyEnumWindows(HWND hwnd, LPARAM lparam)
a hwnd ismereteben lekerheto az ablakhoz tartozo szal id-je
a
GetWindowProcessThreadId(hwnd,NULL)
, ha ez az id
megegyezik a keresett alkalmazas valamelyik szaljanak id-jevel,
akkor helyben vagyunk.
az
IsIconic(hwnd)
true-t ad vissza, ha a hwnd ablak ikonizalt
nagy vonalakban ennyi
/* bocs az esetleges helyesirasi hidakert */
- A hozzászóláshoz be kell jelentkezni
Huhh, FindWindow nem működött?
- A hozzászóláshoz be kell jelentkezni
ez a fuggv. egy classname-t es egy windowname-t var, amelyek nem
feltetlenul azonosak az alkalmazas nevevel
/* bocs az esetleges helyesirasi hidakert */
- A hozzászóláshoz be kell jelentkezni