枚举MSMQ中的所有传出队列,C#

Urd*_*rda 10 c# msmq

使用C#和.NET 3.5,如何获取MSMQ中所有传出队列的列表?我找到了关于它的这篇文章,但正如你在下面看到的那样,我没有COM条目Microsoft Message Queue 3.0 Object Library...

我不小心搞了Microsoft Message Queue 3.0对象库

那么如何才能获得当前的传出队列列表?我认为必须有一种方法,因为我可以看到它们Computer Management......

计算机管理+ MSMQ

我能做什么?

Bla*_*ICE 3

我认为两个好的起点是:

http://msdn.microsoft.com/en-us/library/ms703173%28v=vs.85%29.aspx

http://msdn.microsoft.com/en-us/library/ms711378%28v=vs.85%29.aspx

我会看看是否可以编写一些代码。


也许不是,那些看起来很旧,但看起来仍然如此。


下面是一些 WScript 将向您展示它们,仍在寻找 .Net 代码:

Dim Locator
Set Locator = CreateObject("WbemScripting.SWbemLocator")
Dim objs
Set Service = Locator.ConnectServer(".", "root\cimv2")
Set objs = Service.ExecQuery("Select * From Win32_PerfRawData_MSMQ_MSMQQueue")
For Each object In objs
    WScript.Echo "Name: " & object.Name
Next 
Run Code Online (Sandbox Code Playgroud)
using System.Management;
namespace TestMSMQStuff
{
    class Program
    {

        static void Main(string[] args)
        {

            System.Management.SelectQuery q = new SelectQuery("Select * From Win32_PerfRawData_MSMQ_MSMQQueue");
            ManagementObjectSearcher s = new ManagementObjectSearcher(q);
            foreach (var r in s.Get())
            {
                Console.WriteLine(r.Properties["Name"].Value);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

看起来所有传出队列都以“os:”开头

需要引用System.Management和System.Management.Instrumentation