HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Makró használata Visual Studio.NET-ben


Példaprogram letöltése

24082 bájt

A Visual Studio.NET külön eszközt biztosít arra, hogy tetszőleges funkciókra makrókat írhassunk. A kész makrók ezt követően integráns részeit képezik a fejlesztőkörnyezetnek, akár annak objektumai – mint a szerkesztett projektek – is elérhetők funkcióikból. Cikkünkben a makrók létrehozásának és használatának lehetőségeit mutatjuk be egészen a kezdeti lépésektől.

A mellékelt projekt Comforts alkönyvtárában található makró-projektet (Comforts.vsmacros állomány) töltse be a keretrendszerbe, a Macro Explorer segítségével. Ehhez az ablak gyorsmenüben válassza a Load Macro Project menüpontot.
A Visual Studio.NET makrók olyan instrukciók és parancsok sorozatai, melyeket egy konkrét feladat automatikus végrehajtása érdekében csoportba gyűjtünk. A makrók segítségével automatizálhatók bizonyos ismétlődő feladatok.
A Visual Studio.NET önálló szoftverkomponensként tartalmaz egy makrók szerkesztésére alkalmas keretrendszert (IDE), mely lehetővé teszi, hogy a makró készítés, szerkesztés, és futtatás műveleteit egy eszközzel végezzük el.
Makró rögzítése
A makró készítés legegyszerűbb módja a makrók rögzítése (recording), mely művelet nagyon hasonlít a hangrögzítő berendezések működésére, vagyis a REC gomb megnyomása után a készülék minden hangot és neszt rögzít, ami a környezetben történik egészen a STOP gomb megnyomásáig. Ennek mintájára alkották meg a fejlesztők a makró-rögzítés elvét is, vagyis a keretrendszerben elvégzett valamennyi művelet rögzítésre kerül a rögzítés kezdetétől a rögzítés befejezéséig. Ennek eredménye a makró egy külön moduljába kerül, melyet újra futtathatunk, és amely elvégzi a korábban rögzített valamennyi feladatot.
A keretrendszer Tools menüjében válasszuk a Macros – Record TemporaryMacro pontot, majd kezdjünk el valamilyen szöveget begépelni a szöveges állományba.
A művelet végén válasszuk a kis eszköztárból a Stop műveletet a rögzítés befejezéséhez. Ekkor egy RecordingModule nevű új modul adódik a Macro Explorer ablakban aktívra állított makró projektjéhez, mely rendelkezik egy TempraryMacro metódussal. Ezt követően töröljük ki a szöveget a szöveges állományból, és kattintsunk a metódusra. A metódus egy pillanat alatt visszaírja a szöveget az állományba. A műveletet elvégző modul kódja a következő:


Public Module RecordingModule
  Sub TemporaryMacro()
    DTE.Windows.Item("TextFile1.txt").Activate()
    DTE.ActiveDocument.Selection.Text = "Ez egy minta állomány..."
  End Sub
End Module
A metódusban aktiváljuk a szöveges állományt, majd beillesztjük a szöveget.
Új makró projekteket a Macros IDE alpont megnyomásával elinduló környezetben hozhatunk létre, illetve itt szerkeszthetjük a meglévő makróinkat is.
Makró futtatása paraméter átadásával
Látható, hogy a fenti metódus nem rendelkezett paraméterrel. Most elkészítünk egy paramétert váró metódust, majd a makrónak egy paramétert átadva futtatjuk azt.
A metódus kódja a következő:
Sub ParamMethod(Optional ByVal text As String = "", Optional ByVal number As Integer = 0)
    MsgBox(text & number)
  End Sub
Látható, hogy két paramétert vár, egy karakterláncot, és egy egész számot. Ezeket a makró futtatásakor megjeleníti egy üzenetablakban.
A metódus futtatásához azonban el kell indítanunk a VS.NET IDE Command Window parancssor ablakát, melyben megadhatjuk a metódusnak a paramétereket is. A futtatást a következőképpen végezzük el:


Macros.Comforts.Module1.ParamMethod "Átadott szöveg",15
A Macro Explorer ablakban kattintva a metóduson, az paraméter nélkül fut le, így az üzenetablakban csak egy 0 jelenik meg, amely a szám típusú paraméter kezdeti értéke.
COM komponensek elérése makróból
A makrókban elérhetünk COM komponenseket is. Ehhez csupán referenciaként kell hozzáadni a COM típuskönyvtárát a makró projektjéhez.
A makró projektünk PlayAVI makrójában megvalósítjuk, hogy képes legyen AVI állományokat lejátszani. Az AVI állományok lejátszására a Windows rendszerkönyvtárában (/Windows/system32) található QUARTZ.DLL állomány képes, melynek típuskönyvtárát importálnunk kell egy új assembly-be a .NET Framework tlbimp.exe alkalmazása segítségével, a következő parancssorral:
tlbimp <winroot>:\Windows\system32\quartz.dll
Az eredmény egy QuartzTypeLib.dll állomány, melyet referenciaként meg kell adni a makró projektjében. A makró számára elérhető assembly-k egy külön mappában találhatóak, a makrók csak az ide elhelyezett assembly-ket láthatják, valamint a GAC elemeit. A mappa elérési útvonala a következő:
<winroot>:\\Program Files\Microsoft Visual Studio .NET\Common7\IDE\PublicAssemblies
Ide be kell tehát másoljuk a rendszerkönyvtárban létrejött állományt.
A makró projektjének gyorsmenüjéből az Add reference menüpontot kiválasztva elérhető, hogy a megjelenő ablakban a .NET fül alatt látható legyen az assembly.
Most már csak fel kell azt használni a PlayAVI metódusban. A kód a következő:


Sub PlayAVI()
    Dim graphManager As New QuartzTypeLib.FilgraphManager()
    Dim name As String = InputBox("Adja meg az AVI állomány nevét: ")
    graphManager.RenderFile(name)
    graphManager.Run()
  End Sub
A COM komponens FilgraphManager osztályát használjuk fel az AVI állomány elindítására. A RenderFile metódus paramétere a fájl neve lesz, melyet egy dialógusablakban kérünk be. A Run metódussal pedig elindítjuk azt.
Gyakori műveletek automatizálása
A mellékelt makró projektünkben elhelyeztünk három makrót, melyek gyakran használandó kódrészleteket szúrnak be az éppen szerkesztett dokumentumba. Ezek közül a CreateProperty makró egy property deklarációt illeszt a dokumentumba, amennyiben egy típust és egy nevet írunk az aktuális kurzorpozícióba, és kijelöljük azokat. A makró észleli a neveket, és ez alapján generál egy definíciót, melyet elrendezve illeszt be a kijelölt szöveg helyére.
Ehhez a dokumentum aktív kijelölését keresi meg, és az ott található szöveget dolgozza fel.
selection = DTE.ActiveDocument.Selection
A beillesztendő szöveget egy StringBuilder objektumban hozza létre, annak Append metódusával fűzve fel a karakterláncokat. Végül a kijelölt szöveg helyére illeszti a kész karakterláncot.
...
selection.Delete()
selection.Insert(sbuilder.ToString(), vsInsertFlags.vsInsertFlagsInsertAtStart)
A szöveg igazításához a kijelölt szöveget reprezentáló objektum SmartFormat metódusát használjuk fel.
selection.SmartFormat()
A projekt InsertForLoop makrójával egy FOR ciklust illeszthetünk be a projektünk éppen aktív állományába hasonló módszerrel.
Az InsertWhileLoop makrót pedig arra használhatjuk, hogy egy WHILE ciklus kódjának leírását takarítsuk meg.

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 399. 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 |