npm 包 @nodert-win8.1/windows.system.profile.systemmanufacturers 使用教程

阅读时长 5 分钟读完

简介

从 Windows 8.1 开始,Microsoft 开始提供 Windows.System.Profile.SystemManufacturers API,用于获取系统硬件信息。但是这个 API 只能在 UWP (Universal Windows Platform) 应用程序中使用。

@nodert-win8.1/windows.system.profile.systemmanufacturers 是一个 npm 包,它可以让我们在 Node.js 中使用这个 API。

在本文中,我们将学习如何安装并使用这个 npm 包,以及如何获取系统的硬件信息。

安装

安装这个 npm 包非常简单,只需要运行一条命令即可:

使用

在使用这个 npm 包之前,我们需要在运行环境中安装 windows-build-tools

然后,我们可以通过以下方式获取系统厂商名称:

-- -------------------- ---- -------
----- ------------------- - ---------------------------------------------------------------------

----------------------------------------------------
    ---------------------- -- -
        ---------------- ------ ------------ -- -----------------------
    --
    ------------ -- -
        ---------------------
    ---

这个例子将打印出类似于以下内容的结果:

API

@nodert-win8.1/windows.system.profile.systemmanufacturers npm 包只提供了一个方法:getFirstSystemManufacturerName()

这个方法将返回一个 Promise,它的解析值是系统的厂商名称,如果出现错误,则会拒绝这个 Promise

深度指导

@nodert-win8.1/windows.system.profile.systemmanufacturers 包的源码是开放的,因此我们可以深入研究它的实现细节。在下面,我们将简要介绍一下这个包的工作原理。

前提条件

首先,让我们对架构、平台以及编译器等等的一些前提条件做一些约定:

  • 架构: x64
  • 平台: Windows 8.1 / Windows Server 2012 R2
  • 编译器: Visual C++ 2010 (v10.0) 或更高版本

实现原理

该 npm 包的核心代码是一个 Native Addon,它使用 C++ 编写。该 Addon 调用 Windows.System.Profile.SystemManufacturers API 并将结果传递给 JavaScript。为了使 C++ 代码能够在 Node.js 环境中编译和链接,我们使用了 node-gyp 工具。

该 Addon 的源代码可以在 ./src/win32/system-manufacturers.cc 文件中找到。

如果你非常熟悉 C++ 并且想要深入研究该 Addon 的源代码,请前往 Windows Kits/8.1/Headers/winrt/windows.system.profile.systemmanufacturers.h 文件中查找 SystemManufacturers 接口的实现。

开发指导

如果您想要开发一个类似的 Node.js 模块来调用其他 Windows API,请参阅 Creating Addons 以获取更多信息。

结论

在本文中,我们学习了如何安装和使用 npm 包 @nodert-win8.1/windows.system.profile.systemmanufacturers,以及如何获取 Windows 系统厂商的名称。由于使用此 npm 包需要在运行环境中安装 Windows SDK,因此请确保您的开发计算机满足相关的硬件和软件要求。

示例代码

-- -------------------- ---- -------
----- ------------------- - ---------------------------------------------------------------------

----------------------------------------------------
    ---------------------- -- -
        ---------------- ------ ------------ -- -----------------------
    --
    ------------ -- -
        ---------------------
    ---

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bce967216659e244d0e

纠错
反馈