Народ посоветуйте.
Хочу написать макрос под студио.НЕТ, что бы он при добавлении нового файла в проект, производил определенные действия.
Трабл с отловом сообщения, когда добавляется новый Item в проект.
Нашел самплик в для отлова сообщения OnBuildDone.
Переделал его. Но не работает, сообщение не приходит

что не так ?
Public Module Module1
Dim WithEvents xevents As ProjectItemsEvents
Dim applicationObject As EnvDTE.DTE
Sub EventsExample()
applicationObject = CType(Application, EnvDTE.DTE)
xevents=CType(applicationObject.Events.SolutionItemsEvents,EnvDTE.ProjectItemsEvents)
End Sub
Private Sub xevents_ItemAdded(ByVal Project As EnvDTE.ProjectItem) Handles xevents.ItemAdded
MsgBox("test")
End Sub
... << RSDN@Home 1.1.3 stable >>
Тот же вопрос...
Складывается такое впечатление что это не возможно ?!
Здравствуйте, aton, Вы писали:
A>Можеш сэмпл показать, у меня такой код не работает:
A>В EnvironmentEvents
A>A> Public Sub MiscFilesEvents_ItemAdded(ByVal ProjectItem As ProjectItem) Handles MiscFilesEvents.ItemAdded
A> MsgBox("ItemAdded")
A> End Sub
A>MiscFilesEvents это:
A><System.ContextStaticAttribute()> Public WithEvents MiscFilesEvents As EnvDTE.ProjectItemsEvents
A>
Да я просто тупо из MSDN скопировала, a EnvironmentsEvents вообще не трогала
Imports EnvDTE
Imports System.Diagnostics
Imports Microsoft.VisualStudio.VCProjectEngine
Public Module Module1
Sub ItemAdded(ByVal item As Object, ByVal parent As Object)
Dim vcitem As VCProjectItem
vcitem = item
MsgBox("ADD " & vcitem.ItemName)
End Sub
Sub ItemRemoved(ByVal Item As Object, ByVal ItemParent As Object)
Dim vcitem As VCProjectItem
vcitem = Item
MsgBox("REMOVE " & vcitem.ItemName)
End Sub
Sub Main()
Dim projEngine As VCProjectEngine
Dim evt As VCProjectEngineEvents
Dim prj As VCProject
projEngine = DTE.Solution.Projects.Item(1).Object.VCProjectEngine
prj = DTE.Solution.Projects.Item(1).Object
evt = projEngine.Events
AddHandler evt.ItemAdded, AddressOf ItemAdded
AddHandler evt.ItemRemoved, AddressOf ItemRemoved
''''' prj.AddFile("myfile")
End Sub
End Module