HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

A Visual Studio.NET Spy++ eszköze


Példaprogram letöltése

7973 bájt

A Visual Studio.NET keretrendszer számtalan beépített szolgáltatása közül cikkünkben a Microsoft Spy++ nevű eszközt mutatjuk be, megismerve funkcióját, használatának módját. Használatával fejlesztőként igen sok információt kaphatunk a számítógépünkön éppen futó processzekről. A mellékelt példában a Spy++ programmal nyert információt használjuk fel egy célzott üzenet elküldéséhez.

A Microsoft Spy++ (spyxx.exe) alkalmazás egy 32-bites segédprogram, melynek segítségével grafikus képet kaphatunk a rendszer process-eiről, szálairól, ablakairól, valamint a rendszerben generálódó Windows-os üzenetekről.
Az alkalmazás a Visual Studio.NET IDE Tools menüjének Spy++ menüpontjából indítható, és alapértelmezésben a <winroot>:\\Program Files\Microsoft Visual Studio.NET\Common7\Tools\spyxx.exe elérési útvonalon található.
Összefoglalva a Spy++ alkalmazás lehetőségeit, a következőkre képes:
  • Grafikusan képes megjeleníteni a rendszer objektumai (ablakok, szálak, és process-ek) közti relációkat,
  • Kereshetünk egy adott objektumot és Windows üzenetet szintén grafikus eszközökkel,
  • Kiválaszthatunk egy adott objektumot, és megjeleníthetjük tulajdonságát,
  • A rendszer egy adott objektuma az egérkurzor segítségével is kijelölhető,
  • Beállíthatjuk egy adott üzenet tulajdonságait
Windows ablak
A program Spy menüjében érhetjük el a legfontosabb funkciókat. A Windows menüpontból nyitható meg a Desktop, mint gyökérobjektum valamennyi gyermekablakának tulajdonságait felfedő fastruktúra, ahol a legfelső elem a Desktop, és ebből nyílnak az alkalmazások elérhető ablakobjektumainak csomópontjai.
A fastruktúra egy tetszőleges ágának gyorsmenüjéből elérhetők funkciók, melyek a következők:
  • Ablak által fogadott üzenetek listája,
  • Ablaklista frissítése,
  • Kiválasztott ablak villogtatása (highlighting).
Ez utóbbi funkció akkor használható, ha az adott ablak pillanatnyilag nem látható egy azt eltakaró ablak miatt. Ekkor az ablak keretét 1 másodpercre a funkció felvillantja, hogy észrevegyük, és beazonosítsuk.
Az adott ablakról több információt megkaphatunk. Ezek: ablak kezelőjének azonosítója, az ablak fejlécének szövege, és az ablak osztályának neve.
A funkciók kipróbáláshoz indítsuk el a mellékelt példaprogramot, majd frissítsük a Spy++ alkalmazásban az ablaklistát (Gyorsmenü - Refresh). Keressük meg a példaprogram ablakának jellemzőit a Windows fában.
A csomópontot kibontva látható, hogy a program minden - az ablak gyermekobjektumát képező - vezérlőt megmutat, felfedve azok feliratát, szövegét, és a tartalmazó osztályt.
Az egyes csomópontok gyorsmenüjében elérhető Properties pontból elérhető egy dialógusablak, melyen még több információt tudhatunk meg az adott ablakról, vagy vezérlőről. Megtudhatjuk például az adott vezérlő befoglaló méreteit.
Az alkalmazás érdekessége, hogy a SEARCH menüben attól függően érhetünk el keresőfunkciót, hogy éppen melyik fajta ablakot böngésszük.


A Find Window pontban kereshetünk egy adott ablakra egy keresőeszköz segítségével. Ez nem más, mint egy megragadható ikon, melyet elegendő valamely futó alkalmazás ablaka fölé mozgatni, és a dialógusablak mezőiben megjelennek az adott ablak jellemzői, mint a kezelő értéke, a fejlécszöveg, és az osztálynév. Az OK gombra kattintva a Windows ablakban kijelölésre kerül az adott alkalmazás ablakához tartozó bejegyzés.


További ablakok
Az alkalmazás Spy menüpontjából a további ablakok nyithatóak. Az egyik a Processes ablak, melyben felsorolva láthatjuk a rendszerben futó process-ek listáját.
Az ehhez tartozó, hasonló elven működő keresőt a SEARCH menüben találjuk. A Process-el kapcsolatban valamennyi információ lekérdezhető innen.
A Threads menüpontból pedig a rendszerben futó szálak jellemzőit ismerhetjük meg. A Windows ablak Properties dialógusablakában megismerhetjük az adott szál azonosítóját, és ez alapján megkereshetjük a Search – Find Thread menüpontban felbukkanó ablakban.


Üzenetek figyelése
Egy ablakot, vagy vezérlőt kiválasztva van lehetőségünk a kapott üzenetek listázására. A figyelendő üzeneteket azonban szűrhetjük is.
A Messages menüpont Logging options menüpontját kiválasztva megjelenik egy ablak, melynek Messages füle alatt kondicionálhatjuk az üzenetfigyelést. Ezek a beállítások egy konkrét objektum üzeneteire vonatkoznak. A fül alatt egy üzenetlista található, ahol üzenetcsoportonként szelektálhatjuk a figyelendő üzenetek körét.
Mellékelt példa
Példánkban egy API függvényben használjuk fel azokat az információkat, melyeket a Spy++ segítségével egy alkalmazásról lekérdeztünk.
A Form két mezőjében meg kell adnunk a Spy++ alkalmazásban kiválasztott ablak fejlécmezőjének szövegét, valamint a lekérdezett osztálynevet, majd az ÜZENETKÜLDÉS gomb segítségével küldhetünk egy Windows-os üzenetet az ablaknak. Az üzenet az ablak, egyben az a fogadó alkalmazás bezárására ad utasítást.
A felhasználandó API függvényeket egy Win32 nevű osztályban helyeztük el. A WM_SYSCOMMAND konstans tartalmazza az üzenet azonosítóját, az SC_CLOSE konstans pedig annak paraméterét.
public const int WM_SYSCOMMAND = 0x0112; 
public const int SC_CLOSE = 0xF060;
A megadott információk alapján meghatározzuk az ablak kezelőjét a FindWindow metódussal.
[DllImport("user32.dll")] 
public static extern int FindWindow(string lpClassName,string lpWindowName);
A SendMessage függvénnyel pedig célba juttatjuk az üzenetet.
[DllImport("user32.dll")] 
public static extern int SendMessage(int hWnd,uint Msg,int wParam,int lParam);
A művelet eredményeképpen az így specifikált ablak bezáródik.

Cikksorozat

#IDKategóriaCikk címeSorozat
2591WindowsTippek és trükkök - RAS - Modem csengetési szám állítása1. rész
2622WindowsTippek és trükkök - Program futtatása más felhasználóként2. rész
2640WindowsA Windows ikonméretének megváltoztatása és Windows 2000 Asztaltémák3. rész
2657WindowsTippek és trükkök - Internet Explorer4. rész
2667WindowsTippek és trükkök5. rész
2684WindowsAlapértelmezések állítása, telepítési fájlok helye, intéző nézetek6. rész
2696WindowsBiztonsági trükkök7. rész
2702WindowsWindows XP trükkök8. rész
2729WindowsWindows 2000 és XP tippek, trükkök9. rész
2757WindowsRegistry trükkök10. rész
2784WindowsTippek, trükkök11. rész
2829WindowsTippek, trükkök12. rész
2889WindowsWindows XP tippek13. rész
2909WindowsTippek Windows XP-hez14. rész
2919WindowsWindows tippek15. rész
2924WindowsWindows tippek16. rész
2963WindowsWindows tippek17. rész
2973WindowsWindows Tippek18. rész
2981WindowsWindows tippek19. rész
2990WindowsTippek-trükkök20. rész
3027WindowsIIS tippek21. rész
3034WindowsWindows XP tippek-trükkök22. rész
3088WindowsWindows 2000/XP tippek, trükkök23. rész
3133WindowsWindows XP tippcsokor24. rész
3140WindowsWindows XP tippek, trükkök25. rész
3152WindowsXP és IIS tippek - trükkök26. rész
3158WindowsWindows XP tippek, trükkök27. rész
3168WindowsTippek, trükkök28. rész
3170WindowsRegistry trükkök29. rész
3179WindowsTippek, trükkök30. rész
3197WindowsWindows XP tippek, trükkök31. rész
3205WindowsTippek, trükkök32. rész
3214WindowsTippek, trükkök33. rész
3223WindowsTippek, trükkök34. rész
3233WindowsTippek, trükkök35. rész
3271WindowsTippek, trükkök36. rész
3307WindowsTippek, trükkök37. rész
3370WindowsTippek, trükkök38. rész
3399WindowsTippek, trükkök39. rész
3510WindowsTippek, trükkök40. rész
3611WindowsHardverrel kapcsolatos tippek, trükkök41. rész
3668WindowsRegistry trükkök42. rész
3711WindowsTippek, trükkök43. rész
3771WindowsTippek, trükkök44. rész
3801WindowsTippek, trükkök45. rész
3831WindowsTippek, trükkök46. rész
3891WindowsTippek, trükkök47. rész
3921WindowsTippek, trükkök48. rész
3981WindowsTippek, trükkök49. rész
4041WindowsTippek, trükkök50. rész
4071WindowsTippek, trükkök51. rész
4151WindowsTippek, trükkök52. rész
4171C#Tippek, trükkök53. rész
4211WindowsTippek, trükkök54. rész
4251WindowsTippek, trükkök55. rész
4281WindowsTippek, trükkök56. rész
3589DelphiTippek, trükkök57. rész
3718DelphiTippek, trükkök58. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 414. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |