Electron 或 Node.js 判断当前设备是否支持触摸屏
在 Windows 系统上,可以通过注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Tablet PC\IsTabletPC
获取当前设备是否支持触摸屏。
若 IsTabletPC
的值大于 0
,则表示支持触摸屏。
执行以下命令,可以查询到对应的注册表信息:
REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Tablet PC" /v IsTabletPC
在 Node.js 中,可以通过执行上述命令,检测返回内容的方式,判断当前设备是否支持触摸屏(除了使用命令以外,还可以使用 regedit 模块来获取注册表信息)。
示例代码:
const cp = require('child_process');
const os = require('os');
/** 通过注册表信息检测当前设备是否支持触摸屏 */
function isTabletPC() {
if (os.platform() !== 'win32') {
throw new Error('仅支持 Windows 系统');
}
try {
// 命令返回内容:
// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Tablet PC
// IsTabletPC REG_DWORD 0x0
// 命令内容
let cmd = 'REG QUERY "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\Tablet PC" /v IsTabletPC';
// 执行命令,转换返回内容为字符串
let result = cp.execSync(cmd).toString();
// 匹配:IsTabletPC REG_DWORD 0x0
let matched = result.match(/IsTabletPC\s+REG_\w+\s+([0-9a-fx]+)/i);
// 提取:0x0
let value = parseInt(matched ? matched[1] : null);
if (isNaN(value)) {
throw new Error('处理命令返回内容失败');
}
return (value !== 0);
} catch (error) {
console.error('检测触摸屏失败:');
console.error(String(error));
return false;
}
}
分类:
开发 / Node.js
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)