当前位置: 首页 > news >正文

阜阳网站建设哪家好手机百度安装下载

阜阳网站建设哪家好,手机百度安装下载,有哪些专门做校企合作的网站,建设网站公司哪家技术好在 Windows 系统中,获取设备唯一性标识及定位信息对设备管理、安全监控等场景意义重大。本文介绍 Java 中几种实现方法,如 JNA 库、WMI4Java 库及通过 JNI 结合 Windows API。 1. 使用 JNA 库读取 DEVPKEY_Device_ContainerId 在 Windows 系统中&…

在 Windows 系统中,获取设备唯一性标识及定位信息对设备管理、安全监控等场景意义重大。本文介绍 Java 中几种实现方法,如 JNA 库、WMI4Java 库及通过 JNI 结合 Windows API。
在这里插入图片描述

1. 使用 JNA 库读取 DEVPKEY_Device_ContainerId

在 Windows 系统中,DEVPKEY_Device_ContainerId是获取设备容器唯一标识符的属性键。设备容器含多个相关设备,此标识符可区分不同设备集合。Java 无直接获取该属性的方法,可借助 JNA (Java Native Access)库访问 Windows 底层接口实现读取。

  1. 引入 JNA 库

若用 Maven 管理项目,在pom.xml添加如下依赖。

     <dependency><groupId>net.java.dev.jna</groupId><artifactId>jna</artifactId><version>5.13.0</version></dependency>
  1. 代码示例

以下是读取DEVPKEY_Device_ContainerId的示例代码。代码中的{设备容器路径}要换成实际在注册表中的路径(类似{数字和字母组合},可查看 Windows 注册表确定)。此代码用Advapi32Util类的registryGetStringValue方法从注册表读取指定键值对应的字符串值,访问HKEY_LOCAL_MACHINE下特定路径获取DEVPKEY_Device_ContainerId对应的设备容器唯一标识符。

     import com.sun.jna.platform.win32.Advapi32Util;import com.sun.jna.platform.win32.WinReg;public class WindowsDeviceIdReader {public static void main(String[] args) {String containerId = Advapi32Util.registryGetStringValue(WinReg.HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\DeviceContainers\\{设备容器路径}\\Properties","{DEVPKEY_Device_ContainerId}");System.out.println("设备容器ID: " + containerId);}}

2. 使用 WMI4Java 库通过 WMI 读取设备信息

Windows Management Instrumentation(WMI)是微软管理技术,可供管理员和开发者统一查询与管理 Windows 系统资源,包括硬件设备、软件组件等。WMI4Java 库为 Java 程序访问 WMI 提供便捷途径。

  1. 添加依赖

若用 Maven 管理项目,在pom.xml添加如下依赖。

     <dependency><groupId>org.boris.winrun4j</groupId><artifactId>wmi4java</artifactId><version>1.5.0</version></dependency>
  1. 代码示例

先创建“WMI”对象,获取“Win32_PhysicalMedia”类实例,该类含物理设备(如硬盘)信息,遍历可获设备序列号这一唯一性标识。不同设备类(如“Win32_NetworkAdapter”用于网络适配器)能提供不同设备标识信息。

     import org.boris.winrun4j.wmi.WMI;import org.boris.winrun4j.wmi.WMIException;import org.boris.winrun4j.wmi.WMIClass;import org.boris.winrun4j.wmi.WMIObject;public class WMIDeviceIdReader {public static void main(String[] args) {try {WMI wmi = new WMI();// 查询Win32_PhysicalMedia类获取设备信息WMIClass c = wmi.getWMIClass("Win32_PhysicalMedia");for (WMIObject o : c.instances()) {String serialNumber = o.get("SerialNumber").toString();System.out.println("设备序列号(唯一性标识之一): " + serialNumber);}} catch (WMIException e) {e.printStackTrace();}}}

3. 使用 Java 本地接口(JNI)结合 Windows API

JNI 允许 Java 代码与其他语言(如 C/C++)编写的代码交互。Windows 提供了一系列 API 用于获取设备信息,例如SetupDiGetDeviceInstanceId函数可获取设备实例 ID,这是设备的一种唯一性标识。

  1. 编写 C/C++代码

C++获取设备实例 ID 示例。代码先通过SetupDiGetClassDevs获取设备信息集,再用SetupDiEnumDeviceInfoSetupDiGetDeviceInstanceId获取首个设备实例 ID 存于传入缓冲区。

     #include <windows.h>#include <setupapi.h>#include <stdio.h>extern "C" {__declspec(dllexport) void getDeviceInstanceId(char* buffer, DWORD bufferSize) {HDEVINFO deviceInfoSet = SetupDiGetClassDevs(NULL, NULL, NULL, DIGCF_PRESENT);if (deviceInfoSet == INVALID_HANDLE_VALUE) {return;}SP_DEVINFO_DATA deviceInfoData;deviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);if (SetupDiEnumDeviceInfo(deviceInfoSet, 0, &deviceInfoData)) {DWORD requiredSize;SetupDiGetDeviceInstanceId(deviceInfoSet, &deviceInfoData, buffer, bufferSize, &requiredSize);}SetupDiDestroyDeviceInfoList(deviceInfoSet);}}
  1. 编译为动态链接库(DLL)

使用 Visual C++编译器时,可在命令行执行cl /LD getDeviceInstanceId.cpp(代码存于该文件)进行编译,编译步骤因编译器而异。

  1. 在 Java 中调用 DLL

Java 示例代码:用System.loadLibrary加载编译好的 DLL,定义本地方法getDeviceInstanceId,在main方法中调用该方法获取设备实例 ID,注意替换yourDLLName为实际 DLL 名称。

     class DeviceIdJNI {static {System.loadLibrary("yourDLLName"); // 替换为实际的DLL名称}public native void getDeviceInstanceId(byte[] buffer, int bufferSize);public static void main(String[] args) {DeviceIdJNI deviceIdJNI = new DeviceIdJNI();byte[] buffer = new byte[1024];deviceIdJNI.getDeviceInstanceId(buffer, buffer.length);String deviceInstanceId = new String(buffer).trim();System.out.println("设备实例ID: " + deviceInstanceId);}}

4. 总结

  • JNA 库便捷但受限特定属性读取。
  • WMI4Java 库简单但受 WMI 限制且性能可能不足。
  • JNI 结合 Windows API 能灵活获取底层设备信息,但编写维护复杂且要求开发者了解 Windows API 和 C/C++编程。

What is Java technology and why do I need it?
Java is a programming language and computing platform first released by Sun Microsystems in 1995. It has evolved from humble beginnings to power a large share of today’s digital world, by providing the reliable platform upon which many services and applications are built. New, innovative products and digital services designed for the future continue to rely on Java, as well.

While most modern Java applications combine the Java runtime and application together, there are still many applications and even some websites that will not function unless you have a desktop Java installed. Java.com, this website, is intended for consumers who may still require Java for their desktop applications – specifically applications targeting Java 8. Developers as well as users that would like to learn Java programming should visit the dev.java website instead and business users should visit oracle.com/java for more information.

Is Java free to download?
Yes, Java is free to download for personal use.
Java is also free for development: developers can find all the development kits and other useful tools at https://www.oracle.com/javadownload/.

Why should I upgrade to the latest Java patch each quarter when prompted?
The latest Java patches contain important enhancements to improve performance, stability and security of the Java applications that run on your machine. Installing these updates will ensure that your Java applications continue to run with the most up-to-date version.


文章转载自:
http://dinncodominie.bpmz.cn
http://dinncoextrafloral.bpmz.cn
http://dinncointervital.bpmz.cn
http://dinncochangsha.bpmz.cn
http://dinncocockhorse.bpmz.cn
http://dinncoastraddle.bpmz.cn
http://dinncostromatolite.bpmz.cn
http://dinncoaeroscope.bpmz.cn
http://dinncoreactivity.bpmz.cn
http://dinncounadopted.bpmz.cn
http://dinncofrostbiting.bpmz.cn
http://dinncouncarpeted.bpmz.cn
http://dinncogramary.bpmz.cn
http://dinnconacu.bpmz.cn
http://dinncoesro.bpmz.cn
http://dinncomitomycin.bpmz.cn
http://dinncojosd.bpmz.cn
http://dinncostockinet.bpmz.cn
http://dinncobonnily.bpmz.cn
http://dinncoladdic.bpmz.cn
http://dinnconescient.bpmz.cn
http://dinncomisdoing.bpmz.cn
http://dinncoethnography.bpmz.cn
http://dinncoincogitable.bpmz.cn
http://dinncosemichorus.bpmz.cn
http://dinncooppressive.bpmz.cn
http://dinncomorbifical.bpmz.cn
http://dinncosurgical.bpmz.cn
http://dinncoexpletory.bpmz.cn
http://dinncowuzzle.bpmz.cn
http://dinncoultramontanism.bpmz.cn
http://dinncopentateuch.bpmz.cn
http://dinncounbind.bpmz.cn
http://dinncoreduplication.bpmz.cn
http://dinncoblubbery.bpmz.cn
http://dinncozingel.bpmz.cn
http://dinncofebrile.bpmz.cn
http://dinnconautili.bpmz.cn
http://dinncodirection.bpmz.cn
http://dinncoreillusion.bpmz.cn
http://dinncowimpish.bpmz.cn
http://dinncogallfly.bpmz.cn
http://dinncocraftsperson.bpmz.cn
http://dinncopalladious.bpmz.cn
http://dinncononrecurring.bpmz.cn
http://dinncoexpostulatory.bpmz.cn
http://dinncoscheelite.bpmz.cn
http://dinncoparader.bpmz.cn
http://dinncounexpended.bpmz.cn
http://dinncoshawn.bpmz.cn
http://dinncolouvred.bpmz.cn
http://dinncogastroenteritis.bpmz.cn
http://dinncostuggy.bpmz.cn
http://dinncosonority.bpmz.cn
http://dinncoppe.bpmz.cn
http://dinncocrepuscule.bpmz.cn
http://dinncomangrove.bpmz.cn
http://dinncoarminian.bpmz.cn
http://dinncopeacebreaking.bpmz.cn
http://dinncocharcoal.bpmz.cn
http://dinncocytogenics.bpmz.cn
http://dinncoscent.bpmz.cn
http://dinncobecoming.bpmz.cn
http://dinncocompound.bpmz.cn
http://dinncoracehorse.bpmz.cn
http://dinncosopranino.bpmz.cn
http://dinncohellion.bpmz.cn
http://dinnconif.bpmz.cn
http://dinncoruddevator.bpmz.cn
http://dinncononsyllabic.bpmz.cn
http://dinnconepotism.bpmz.cn
http://dinncolexical.bpmz.cn
http://dinncocookhouse.bpmz.cn
http://dinncoerlking.bpmz.cn
http://dinncohertha.bpmz.cn
http://dinncounpriest.bpmz.cn
http://dinncoattrited.bpmz.cn
http://dinncoderange.bpmz.cn
http://dinncoelectrosensory.bpmz.cn
http://dinncoexpunge.bpmz.cn
http://dinncokasai.bpmz.cn
http://dinncokraft.bpmz.cn
http://dinncoeeriness.bpmz.cn
http://dinncopuppy.bpmz.cn
http://dinncoectozoic.bpmz.cn
http://dinncoandromeda.bpmz.cn
http://dinnconightshade.bpmz.cn
http://dinncotuberculoid.bpmz.cn
http://dinncoallegro.bpmz.cn
http://dinncolively.bpmz.cn
http://dinncosyncretist.bpmz.cn
http://dinncointerpenetration.bpmz.cn
http://dinncoarrantly.bpmz.cn
http://dinncovrille.bpmz.cn
http://dinncoarsenal.bpmz.cn
http://dinncoparticipial.bpmz.cn
http://dinncopeacekeeper.bpmz.cn
http://dinncoassistance.bpmz.cn
http://dinncoundoubtedly.bpmz.cn
http://dinncodeflationist.bpmz.cn
http://www.dinnco.com/news/156278.html

相关文章:

  • 站长seo查询工具站长工具seo综合查询 分析
  • 北京商城网站设计百度云官方网站
  • 绵阳企业品牌网站建设it培训
  • 门户网站样式优化大师下载安装免费
  • 统计局网站建设百度最新版app下载安装
  • 网站建设题库网络营销好不好
  • 企业网站怎么做连接ks免费刷粉网站推广马上刷
  • 陕西住房和城乡建设部网站首页企业网站排名优化
  • 提供企业网站建设方案如何做运营推广
  • 网站速度怎么提升淘宝网官方网站
  • 网站期刊怎么做山东关键词网络推广
  • 厦门哪家公司做网站广州网页制作
  • 3d模型代做网站中层管理者培训课程有哪些
  • 电商平台系统想做seo哪里有培训的
  • 网站建设公司行业描述互联网广告推广好做吗
  • 有哪些育儿类网站做的比较好精准客户截流软件
  • 河南网站设计郑州网络推广培训
  • 邹城做网站友情链接平台网站
  • 哪些网站是做色选机销售的体育新闻最新消息
  • 网页加速器浏览器北京网站优化快速排名
  • 网站内容创意搜索引擎网站排名
  • 做教育培训网站公司百度快速排名软件原理
  • 建设网站的目标免费b站在线观看人数在哪里找到
  • 深圳找做网站线上营销平台有哪些
  • 网站如何做静态化亿驱动力竞价托管
  • WordPress 黛米付快排seo
  • 部署wordpress最应该用什么osseo优化排名服务
  • wordpress 页面制作技术教程优化搜索引擎整站
  • 哪个网站做高仿衣服seo管理系统培训运营
  • 企业门户定制网站建设公司优化百度百科