65.9K
CodeProject 正在变化。 阅读更多。
Home

AidaNet: 网络资源清单

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.13/5 (8投票s)

2004 年 2 月 2 日

4分钟阅读

viewsIcon

61959

downloadIcon

1260

用于分析多个 XML 文件的 XPath 脚本。

引言

AidaNet 是一个 XPath 脚本,用于显示由免费软件工具 Aida32 生成的 XML 信息。AIDA32 是一款专业的系统信息、诊断和基准测试程序,可在 Win32 平台上运行。它提取 PC 所有组件的详细信息。它可以将信息显示在屏幕上、打印或以各种格式(如 HTML、CSV 或 XML)保存到文件。对于企业用户,AIDA32 提供命令行开关、网络审计和审计统计、远程系统信息和网络管理。请确保您至少拥有 3.83 版本。

在此处下载 Aida:here

背景

好消息是,您不必在每台计算机上运行 Aida 即可进行库存盘点。

如何创建 XML 文件?(演示只提供了一些 XML 文件)。

只需在用户登录脚本中添加这一行

shell "cmd /c \\Myserver\aida\aida32 /R \\Myserver\aida\Reports\$hostname
                                                         /XML /AUDIT /SILENT"

然后只需等待几天,确保每个人都登录到网络,您就可以知道您的公司安装了哪些程序,谁的 RAM 更大,哪个是使用最多的“默认打印机”等等。

使用代码

AidaNet 不了解 Aida XML 结构。该程序使用脚本来显示信息。对于您要显示的每个有用信息,请使用 XPath 字符串在 *AidaNet.xml* 文件中添加一个 Alias 条目。由于 XML 可能很复杂(Aida 文件的情况),AidaNet 允许您定义子 Alias

<Config>
   <FolderPath>..\\..\\sample</FolderPath>
   <Alias Path="/Report">
      <Alias Path="Page[Title='Summary']">
         <Alias Path="Group[Title='Computer']">
            <Alias Name="OS_NAME" Title="Name"
             Path="Item[Title='Operating System']/Value" />
            <Alias Name="OS_SP" Title="Service Pack"
             Path="Item[Title='OS Service Pack']/Value" />
            <Alias Name="PC_NAME" Title="PC Name"
             Path="Item[Title='Computer Name']/Value" />
            <Alias Name="USER_NAME" Title="User name"
             Path="Item[Title='User Name']/Value" />
         </Alias>
         <Alias Path="Group[Title='Motherboard']">
            <Alias Name="CPU_FULL" Title="CPU Name"
             Path="Item[Title='CPU Type']/Value" />
            <Alias Name="RAM" Title="RAM"
             Path="Item[Title='System Memory']/Value" />
         </Alias>
      </Alias>
   </Alias>
   <Group Name="OS" Title="Operating Systems">
      <Alias Name="OS_NAME"/>
      <Alias Name="OS_LANG"/>
      <Alias Name="OS_SP"/>
   </Group>
</Config>

OS_NAME Alias 然后是 Group[Title='Computer'] 路径的子别名,它本身就是一个路径。这个 Alias 也是 Group Name="OS" 的一部分。一个组的所有 Alias 代表一个单一值。如果您不将其与操作系统类型关联(NT4 SP1 和 XP SP1 是不同的),则无法过滤具有特定 Service Pack 的计算机。可以将不同级别的 Alias 分组,但别名出现的次数必须相同。

自 1.5 版本起,Group 标签只能在 Config 标签中定义,不再在 Alias 标签中定义。 Group 标签中的 Alias name 属性也已更改为 Text。对于已经使用 1.0 版本的用户,对此表示歉意。

开始演示

首先要做的是修改 *aidaNet.xml* 文件。 Config/FolderPath 值应指向您放置 Aida XML 文件的位置。然后启动该程序,并通过“文件/分析”菜单开始收集信息。 AidaNet 将尝试在当前文件夹中查找 *aidaNet.xml* 文件。 如果找不到,它将在 2 个文件夹级别向上打开它。

使用演示

“筛选选择”网格(在顶部)显示所有别名和组名称。“相应文件”网格(在底部)的列网格和“详细信息”网格(在右侧)在同一个 XML 脚本文件中定义(分别对应 FileGrid 标签和 DetailGrid 标签)。“筛选选择”和“相应文件”列网格可以排序。

导出结果

您可以将 3 个网格中的数据导出到文本文件。制表符用于分隔同一行中的字段。导出仅保存网格上可见的内容,因为保存安装了“Internet Explorer”的所有 PC 信息可能会产生很多页报告。

关注点

AidaNet 可以用于其他类型的 XML 文件,例如 XML 书籍文件。这是一个 XPath 用法的很好的例子。它是一个类似 FLWOR 语句(FOR-LET-WHERE-ORDER-RETURN)的程序(仍然不可用)。

此程序使用 2 种方式读取 XML 文件

  • XPathDocument 读取 AIDA 文件。然后使用 XPath 来检索值。
  • XML 架构。 Microsoft XSD 可以从架构生成 C# 代码。 请参阅 XML 数据文件、XML 序列化和 .NET 或者在 CodeProject 中搜索“XML 序列化”以获取更多信息。

改进

下一个版本将提供 XPath 编辑器。

ListView 奖励

该项目带有一个 Listview 帮助器类,该类允许使用向上和向下排序指示器图片进行列排序。 此类不是另一个 ListView 子类,您可以将其与现有代码一起使用。 示例用法

  using ListViewHelper
  ...
  public ListViewSorter MySorter ;
  ...

  // Create the Sorter
  MySorter = new ListViewSorter (MyListView) ;

  // automatic user sort on header click
  MyListView.ListViewItemSorter =  MySorter ;

  // You must specify the array containing the 2 sort pictures.
  MyListView.TableArrows = imageList1 ;
  ...

  // Sort by code. First arg is the column used to sort the list
  MySorter.SortBy (MyColumnHeader , SortOrder.Ascending)

同一个类允许调整所有列的大小。 Microsoft 提供了基于标题或项目的优化列宽的常量,但不能同时基于两者。 ResizeColumns 函数将所有列调整为最大宽度。

示例用法

MySorter.ResizeColumns() ;

历史

  • 2004 年 2 月:版本 1.0
  • 2004 年 3 月:版本 1.5:添加了验证、文本导出并使用 XML 序列化
© . All rights reserved.