Hi,
Sorry forgot to mention you need to add a reference to envdte
for this to work. Sample works best if you build the app and run it with
vs.net closed.
Ken
---------------------
Hi,
Here is how to add a tab to the toolbox that contains some code
snippit. Here is some code for a console app.
Imports EnvDTE
Module Module1
Sub Main()
Dim myDTE As DTE
myDTE =
CType(Microsoft.VisualBasic.Interaction.CreateObject("VisualStudio.DTE.7.1"),
DTE)
Dim objToolbox As ToolBox
Dim colTbxTabs As ToolBoxTabs
Dim objTab As ToolBoxTab
Dim colTbxItems As ToolBoxItems
Dim objTbxItem As ToolBoxItem
objToolbox = CType(myDTE.Windows.Item(Constants.vsWindowKindToolbox).Object,
ToolBox)
colTbxTabs = objToolbox.ToolBoxTabs
' look to see if tab exists
Dim bFound As Boolean = False
Dim tbtDelete As ToolBoxTab
For Each t As ToolBoxTab In colTbxTabs
If t.Name = "WMI Code" Then
tbtDelete = t
bFound = True
End If
Next
If bFound Then tbtDelete.Delete()
objTab = colTbxTabs.Add("WMI Code")
objTab.Activate()
Dim sbCode As New System.Text.StringBuilder
sbCode.Append("' Add a Reference to System.Management" & ControlChars.CrLf)
sbCode.Append("Dim moReturn As Management.ManagementObjectCollection" &
ControlChars.CrLf)
sbCode.Append("Dim moSearch As Management.ManagementObjectSearcher" &
ControlChars.CrLf)
sbCode.Append("Dim mo As Management.ManagementObject" & ControlChars.CrLf)
sbCode.Append("" & ControlChars.CrLf)
sbCode.Append("moSearch = New Management.ManagementObjectSearcher(""Select *
from Win32_LogicalDisk"")" & ControlChars.CrLf)
sbCode.Append("moReturn = moSearch.Get" & ControlChars.CrLf)
sbCode.Append("For Each mo In moReturn" & ControlChars.CrLf)
sbCode.Append(" Dim strOut As String" & ControlChars.CrLf)
sbCode.Append(" strOut = String.Format(""Drive {0} - Drive Type {1}"",
mo(""Name""), mo(""DriveType""))" & ControlChars.CrLf)
sbCode.Append(" Trace.WriteLine(strOut)" & ControlChars.CrLf)
sbCode.Append("Next" & ControlChars.CrLf)
objTab.ToolBoxItems.Add("LogicalDisk", sbCode.ToString,
vsToolBoxItemFormat.vsToolBoxItemFormatText)
sbCode = New System.Text.StringBuilder
sbCode.Append("' Add a Reference to System.Management" & ControlChars.CrLf)
sbCode.Append("Dim moReturn As Management.ManagementObjectCollection" &
ControlChars.CrLf)
sbCode.Append("Dim moSearch As Management.ManagementObjectSearcher" &
ControlChars.CrLf)
sbCode.Append("Dim mo As Management.ManagementObject" & ControlChars.CrLf)
sbCode.Append("" & ControlChars.CrLf)
sbCode.Append("moSearch = New Management.ManagementObjectSearcher(""Select *
from Win32_Group"")" & ControlChars.CrLf)
sbCode.Append("moReturn = moSearch.Get" & ControlChars.CrLf)
sbCode.Append("For Each mo In moReturn" & ControlChars.CrLf)
sbCode.Append(" Trace.WriteLine(mo(""Name""))" & ControlChars.CrLf)
sbCode.Append("Next" & ControlChars.CrLf)
objTab.ToolBoxItems.Add("Groups", sbCode.ToString,
vsToolBoxItemFormat.vsToolBoxItemFormatText)
sbCode = New System.Text.StringBuilder
sbCode.Append("' Add a Reference to System.Management" & ControlChars.CrLf)
sbCode.Append("Dim moReturn As Management.ManagementObjectCollection" &
ControlChars.CrLf)
sbCode.Append("Dim moSearch As Management.ManagementObjectSearcher" &
ControlChars.CrLf)
sbCode.Append("Dim mo As Management.ManagementObject" & ControlChars.CrLf)
sbCode.Append("" & ControlChars.CrLf)
sbCode.Append("moSearch = New Management.ManagementObjectSearcher(""Select *
from Win32_Process"")" & ControlChars.CrLf)
sbCode.Append("moReturn = moSearch.Get" & ControlChars.CrLf)
sbCode.Append("For Each mo In moReturn" & ControlChars.CrLf)
sbCode.Append(" Dim arOwner(2) As String" & ControlChars.CrLf)
sbCode.Append(" mo.InvokeMethod(""GetOwner"", arOwner)" & ControlChars.CrLf)
sbCode.Append(" Dim strOut As String" & ControlChars.CrLf)
sbCode.Append(" strOut = String.Format(""{0} Owner {1} Domain {2}"",
mo(""Name""), arOwner(0), arOwner(1))" & ControlChars.CrLf)
sbCode.Append(" Trace.WriteLine(strOut)" & ControlChars.CrLf)
sbCode.Append("Next" & ControlChars.CrLf)
objTab.ToolBoxItems.Add("ProcessOwner", sbCode.ToString,
vsToolBoxItemFormat.vsToolBoxItemFormatText)
sbCode = New System.Text.StringBuilder
sbCode.Append("' Add a Reference to System.Management" & ControlChars.CrLf)
sbCode.Append("Dim moReturn As Management.ManagementObjectCollection" &
ControlChars.CrLf)
sbCode.Append("Dim moSearch As Management.ManagementObjectSearcher" &
ControlChars.CrLf)
sbCode.Append("Dim mo As Management.ManagementObject" & ControlChars.CrLf)
sbCode.Append("" & ControlChars.CrLf)
sbCode.Append("moSearch = New Management.ManagementObjectSearcher(""Select *
from Win32_Processor"")" & ControlChars.CrLf)
sbCode.Append("moReturn = moSearch.Get" & ControlChars.CrLf)
sbCode.Append("For Each mo In moReturn" & ControlChars.CrLf)
sbCode.Append(" Dim strOut As String" & ControlChars.CrLf)
sbCode.Append(" strOut = String.Format(""{0} - ID {1}"", mo(""Name""),
mo(""ProcessorID""))" & ControlChars.CrLf)
sbCode.Append(" Trace.WriteLine(strOut)" & ControlChars.CrLf)
sbCode.Append("Next" & ControlChars.CrLf)
objTab.ToolBoxItems.Add("Processor", sbCode.ToString,
vsToolBoxItemFormat.vsToolBoxItemFormatText)
' Add a Reference to System.Management
Dim moReturn As Management.ManagementObjectCollection
Dim moSearch As Management.ManagementObjectSearcher
Dim mo As Management.ManagementObject
moSearch = New Management.ManagementObjectSearcher("Select * from
Win32_Group")
moReturn = moSearch.Get
For Each mo In moReturn
Trace.WriteLine(mo("Name"))
Next
End Sub
End Module
Ken
------------------------
I've seen how people have snippets of code stored over by the tool box and
then can drag them into a code page. What do you call this and what's a
reference on how to do this?
Thanks.