如果我想向用户提供一些信息,使用什么方法更好关于我的硬件设备。我应该开发专有的COM库还是应该开发WMI提供程序? 最佳答案 我认为这很简单:WMI是Microsoft提供性能和硬件信息的最佳方式。这应该是您提供所描述信息的方式。Win32_Computer和其他硬件类中有很多先例,它们提供CPU详细信息、内存大小等(不会随软件运行而改变的内容)。我这么说是因为你特别标明了“硬件设备”。不要认为WMI仅用于报告软件类型的内容,例如内存使用情况或进程列表。已经有大量专门用于查询WMI的软件(包括我的一个),因此不乏知道如何执行此操作的
我正在尝试使用WMI连接到域中的远程Windows服务器计算机。以登录域用户身份启动时连接正常,但以本地管理员身份启动时连接失败。有没有办法告诉应用程序在以管理员身份启动时使用较低的域帐户进行连接?(也没有提示输入用户/密码。)我试过:WindowsIdentity.GetCurrent().Impersonate();但它似乎不起作用,即使GetCurrent将域用户显示为当前用户。 最佳答案 我已经成功地使用thiscode模拟其他域帐户来自UweKeim。 关于c#-从他们以管理员
我知道我们可以使用WMI来检索有关已安装的安全应用程序及其状态的信息,如果有的话,喜欢这里链接中的答案1.问题是:如何走相反的路?我的意思是,我正在尝试制作我的个人防病毒软件(我知道,大、大、难,有些人会认为我在开玩笑,我接受所有这些)。我想知道如何将我的软件注册为Windows7的防病毒软件?我正在使用C#顺便说一句。 最佳答案 我猜你可以通过在SecurityCenter中添加一个key来使用注册表来做到这一点。在WindowsXP上,它称为SecurityCenter在WindowsVista、7、8上,它称为Security
使用WMI的ManagementEventWatcher/EventArrivedEventHandler将导致创建另一个我试图避免的线程。WMI也知道它的延迟。所以我的问题是:如何在没有WMI的情况下使用C#检测Windows进程的创建/终止?有没有办法从非托管代码做到这一点? 最佳答案 您可以使用EventTracingforWindows(ETW)。具体来说,您想查看Processclass的子类在kerneleventtracer.我从未在托管代码中使用过它,但是thisblogpost看起来很有用。而且我不知道这是否会在您
这个问题的TL;DR版本:WMIWin32_NetworkAdapter类包含我需要的信息,但是太慢了。在Windows上获取MACAddress,ConfigManagerErrorCode和PNPDeviceID列的信息的更快方法是什么?我需要检索连接的网络适配器的信息,以便可以获取MAC地址来唯一标识本地MicrosoftWindows计算机。WMIWin32_NetworkAdapter类似乎具有我正在寻找的信息。MACAddress,ConfigManagerErrorCode和PNPDeviceID列是我真正需要的唯一列:MACAddress:MAC地址(此操作的目标)Co
如何在C语言中使用WMI获取Windows中所有正在运行的进程的命令行参数? 最佳答案 您必须使用Win32_ProcessWMI类并检查CommandLine属性的值,另请参阅本文HowdoIgetthecommandlineofanotherprocess这解释了字符串是...只是“预初始化变量”,一个进程原则上可以(许多人在实践中这样做,尽管通常是无意中)写入保存命令行的内存更新C样本#define_WIN32_WINNT0x0400#define_WIN32_DCOM#include#include#include#incl
例如,我有那些分区(在Windows中):HardDisk1-PartitionC,PartitionDHardDisk2-PartitionE程序语言中是否有任何方法可以知道分区C和分区D是否在一个物理硬盘中没有WMI?我不想使用WMI,因为它很慢-对于这个例子,我花了0.5秒。我需要它快点。谢谢。 最佳答案 我不知道有任何其他管理方式来获取磁盘分区信息。您可以使用C#中的P/Invoke来使用Win32API。但是,除非绝对必要,否则您不应该这样做。您需要的Win32函数称为DeviceIoControl()。API文档可在ht
来自http://support.microsoft.com/kb/317277:如果WindowsXP由于严重错误而重新启动,Windows错误报告工具会提示您...我的应用如何知道“WindowsXP由于严重错误已重新启动”? 最佳答案 注意:对于code-challenge这是一个很好的问题这里有一些可执行代码,但可以随意添加其他语言的其他解决方案:正常运行时间可能是一个很好的指示:netstatsworkstation|find/i"since"现在将该信息与读取Windows事件日志的方式联系起来,比如在PowerShel
我有一个远程服务器名称(windows)、用户名和密码。使用C#.Net,我想在远程服务器上运行命令并取回控制台输出有没有办法在C#中做到这一点?我能够使用WMI和以下代码(部分)运行命令,但没有获得控制台输出。我只能取回ProcessID。ObjectGetOptionsobjectGetOptions=newObjectGetOptions();ManagementPathmanagementPath=newManagementPath("Win32_Process");ManagementClassprocessClass=newManagementClass(scope,man
我在使用Delphi7中的WMI查询(远程)PC时遇到内存泄漏。内存泄漏仅发生在Windows2003(和WindowsXP64)上。Windows2000没问题,Windows2008也没有问题。不知道有没有人遇到过类似的问题。泄漏仅发生在某些Windows版本中这一事实表明它可能是Windows问题,但我一直在网上搜索但未能找到解决该问题的修补程序。此外,这可能是Delphi问题,因为在C#中具有类似功能的程序似乎没有这种泄漏。后一个事实使我相信可能有另一种更好的方法来在Delphi中获取我需要的信息而不会发生内存泄漏。我已经包含了一个小程序的源代码以暴露下面的内存泄漏。如果sOb