javascript 获取硬件信息
摘自 csdn
// 看了看别的资料有提取CPU,MAC的现成代码却没有硬盘序列号,找了好久才找到提取硬盘序列号的参数。于是自己给补上了。 <script> function disk() { //硬盘序列号 信息 var locator = new ActiveXObject ( "WbemScripting.SWbemLocator" ); var service = locator.ConnectServer( "." ); var properties = service.ExecQuery( "SELECT * FROM Win32_DiskDrive" ); var e = new Enumerator (properties); document.write( "<table border=1>" ); document.write( "<caption>硬盘序列号 信息</caption>" ); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write( "<tr>" ); document.write( "<td style='color:blue'>" + p.signature + "</td>" ); document.write( "</tr>" ); } document.write( "</table>" ); } disk(); </script> <br> // 在这上找的代码: // 对于写过ASP或.net 的人来说,通过asp或.net 语言来获得客户端的硬件信息是很熟悉的. // 但如何通过javascript这种客户端脚本来获得客户端的信息呢?请看以下实例: <br><script> function Button1_onclick() { //CPU 信息 var locator = new ActiveXObject ( "WbemScripting.SWbemLocator" ); var service = locator.ConnectServer( "." ); var properties = service.ExecQuery( "SELECT * FROM Win32_Processor" ); var e = new Enumerator (properties); document.write( "<table border=1>" ); document.write( "<caption>CPU 信息</caption>" ); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write( "<tr>" ); document.write( "<td>" + p.Caption + "</td>" ); document.write( "<td>" + p.DeviceID + "</td>" ); document.write( "<td>" + p.Name + "</td>" ); document.write( "<td>" + p.CpuStatus + "</td>" ); document.write( "<td>" + p.Availability + "</td>" ); document.write( "<td>" + p.Level + "</td>" ); document.write( "<td style='color:blue'>" + p.ProcessorID + "</td>" ); document.write( "<td>" + p.SystemName + "</td>" ); document.write( "<td>" + p.ProcessorType + "</td>" ); document.write( "</tr>" ); } document.write( "</table>" ); } function Button2_onclick() { //软盘信息 var locator = new ActiveXObject ( "WbemScripting.SWbemLocator" ); var service = locator.ConnectServer( "." ); var properties = service.ExecQuery( "SELECT * FROM Win32_FloppyDrive" ); var e = new Enumerator (properties); document.write( "<table border=1>" ); document.write( "<caption>软盘信息 </caption>" ); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write( "<tr>" ); document.write( "<td>" + p.Description + "</td>" ); document.write( "<td>" + p.DeviceID + "</td>" ); document.write( "<td>" + p.Status + "</td>" ); document.write( "<td>" + p.Manufacuturer + "</td>" ); document.write( "</tr>" ); } document.write( "</table>" ); } function Button3_onclick() { //CD-ROM 信息 var locator = new ActiveXObject ( "WbemScripting.SWbemLocator" ); var service = locator.ConnectServer( "." ); var properties = service.ExecQuery( "SELECT * FROM Win32_CDROMDrive" ); var e = new Enumerator (properties); document.write( "<table border=1>" ); document.write( "<caption>CD-ROM 信息 </caption>" ); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write( "<tr>" ); document.write( "<td>" + p.Caption + "</td>" ); document.write( "<td>" + p.Description + "</td>" ); document.write( "<td>" + p.Drive + "</td>" ); document.write( "<td>" + p.Status + "</td>" ); document.write( "<td>" + p.MediaLoaded + "</td>" ); document.write( "</tr>" ); } document.write( "</table>" ); } function Button4_onclick() { //键盘信息 var locator = new ActiveXObject ( "WbemScripting.SWbemLocator" ); var service = locator.ConnectServer( "." ); var properties = service.ExecQuery( "SELECT * FROM Win32_Keyboard" ); var e = new Enumerator (properties); document.write( "<table border=1>" ); document.write( "<caption>键盘信息 </caption>" ); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write( "<tr>" ); document.write( "<td>" + p.Description + "</td>" ); document.write( "<td>" + p.Name + "</td>" ); document.write( "<td>" + p.Status + "</td>" ); document.write( "</tr>" ); } document.write( "</table>" ); } function Button5_onclick() { //主板信息 var locator = new ActiveXObject ( "WbemScripting.SWbemLocator" ); var service = locator.ConnectServer( "." ); var properties = service.ExecQuery( "SELECT * FROM Win32_BaseBoard" ); var e = new Enumerator (properties); document.write( "<table border=1>" ); document.write( "<caption>主板信息 </caption>" ); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write( "<tr>" ); document.write( "<td>" + p.HostingBoard + "</td>" ); document.write( "<td>" + p.Manufacturer + "</td>" ); document.write( "<td>" + p.PoweredOn + "</td>" ); document.write( "<td>" + p.Product + "</td>" ); document.write( "<td style='color:blue'>" + p.SerialNumber + "</td>" ); document.write( "<td>" + p.Version + "</td>" ); document.write( "</tr>" ); } document.write( "</table>" ); } Button1_onclick(); Button2_onclick(); Button3_onclick(); Button4_onclick(); Button5_onclick(); </script> |
分类:
代码收藏
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决