我需要获取Windows系统上所有进程的列表,包括名称和PID.
EnumProcess可以获取pid列表,但是如何从pid获取进程名称?我不想在进程上调用OpenProcess,因为它并不总是有效(就好像其他进程是由不同的用户运行).
我使用的是 Windows 8.1,它没有工具(带有 GUI)来管理 wifi 网络配置文件。所以我正在写一篇对我有帮助的文章。我做了一些谷歌搜索并找到了Managed Wifi API,在教程的帮助下,我设法将这段代码放在一起:
foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)
{
foreach (Wlan.WlanProfileInfo profileInfo in wlanIface.GetProfiles())
{
string profileName = profileInfo.profileName;
ListViewItem item = new ListViewItem(profileName);
string profileXML = wlanIface.GetProfileXml(profileInfo.profileName);
XmlDocument doc = new XmlDocument();
doc.LoadXml(profileXML);
var NSManager = new XmlNamespaceManager(doc.NameTable);
NSManager.AddNamespace("d", "http://www.microsoft.com/networking/WLAN/profile/v1");
XmlNode node = doc.DocumentElement.SelectSingleNode("//d:WLANProfile/d:MSM/d:security/d:authEncryption/d:authentication", NSManager);
item.SubItems.Add(node.InnerText);
Profiles.Items.Add(item);
}
}
Run Code Online (Sandbox Code Playgroud)
获取保存的网络配置文件列表并将它们打印在 ListView 上。我有两个问题。一是如何使用 Managed Wifi API 获取完整的个人资料信息?因为我唯一能得到的就是个人资料名称。网站上没有文档。
第二个问题是,由于无法使用API 获取完整的网络信息,因此我使用API以XML格式打印配置文件信息,然后解析XML并读取它。一个示例 XML:
<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<name>MEDO PUB</name>
<SSIDConfig>
<SSID>
<hex>4D45444F20505542</hex>
<name>MEDO PUB</name>
</SSID>
</SSIDConfig> …Run Code Online (Sandbox Code Playgroud)