>>loLocator = CREATEOBJECT('WBEMScripting.SWBEMLocator') >>loWMI = loLocator.ConnectServer() >>loProcesses = loWMI.ExecQuery([SELECT * FROM Win32_Process]) >> >>For Each loProcess in loProcesses >> ? loProcess.Caption, loProcess.Name, loProcess.ProcessID, Nvl(loProcess.ExecutablePath, '') >>Next >>>
using System; using System.Management; using System.Windows.Forms; namespace WMISample { public class MyWMIQuery { public static void Main() { try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Process"); foreach (ManagementObject queryObj in searcher.Get()) { Console.WriteLine("-----------------------------------"); Console.WriteLine("Win32_Process instance"); Console.WriteLine("-----------------------------------"); Console.WriteLine("Name: {0}", queryObj["Name"]); } } catch (ManagementException e) { MessageBox.Show("An error occurred while querying for WMI data: " + e.Message); } } } }VB.NET:
Imports System Imports System.Management Imports System.Windows.Forms Namespace WMISample Public Class MyWMIQuery Public Overloads Shared Function Main() As Integer Try Dim searcher As New ManagementObjectSearcher( _ "root\CIMV2", _ "SELECT * FROM Win32_Process") For Each queryObj As ManagementObject in searcher.Get() Console.WriteLine("-----------------------------------") Console.WriteLine("Win32_Process instance") Console.WriteLine("-----------------------------------") Console.WriteLine("Name: {0}", queryObj("Name")) Next Catch err As ManagementException MessageBox.Show("An error occurred while querying for WMI data: " & err.Message) End Try End Function End Class End NamespaceCheck that tool :-)