ScreenLock
ScreenLock copied to clipboard
screenlock-node 编译后得到的node二进制文件无法控制按键
问题描述
- 我也在基于electron做一个控制用户键盘的应用,试用了您的screenlock-node模块代码,然后尝试本地编译,目前在以下环境能够编译完成,但是使用node require后调用时能够控制住win+L和 ctrl+alt+delete热键,但是无法控制住常规的win+tab、alt+f4热键。
- 而我用您发布的Releaese 0.0.1版本zip里的lockScreen.node,进行测试,结果正好反过来,能够控制常规热键,控制不了win+L和 ctrl+alt+delete热键
- 所以,想请教,目前您提交的代码与0.0.1版screenlock-node的代码区别?
本地编译环境
- win10 64位
- nodejs v11.15.0 64位
- gyp info
- gyp info using [email protected]
- gyp info using [email protected] | win32 | x64
- vsbuid 2017
其他
- 我在打32位的时候发现,如果直接npm install --arch=ia32打出的包,在使用node调用时会提示为无效的32位应用,必须要把nodejs 改成32位的才行。
我出现了类似的问题,git 直接获取的源码里,lockScreen.node 不能直接使用(因为我是 AMD cpu 么?)。
我重新编译了 screenlock,覆盖原来的 lockScreen.node ,程序可以启动了,但是我希望的热键都没有效果(Alt+F4,ctrl+alt+delete )。
注意到源码里 EnableDebugPriv(); 函数调用是注释掉的,我去掉它的注释,重新编译是成功的,但是无法使用。
各位 ,需要管理员权限打开项目才能控制
还是不行,就算有管理员启动项目或者程序都是无法禁用热键
@atmImphy 执行项目里的UAC.reg,重启机器,管理启动命令行,执行命令:
// cd lockScreen.node dir
node
const screenLock = require('lockScreen.node');
screenLock.lock();
``
在试一下看看是否能够锁定快捷键
问题描述
同样的问题,直接require("src/lockScreen.node")会报错:不是有效的win32应用。 master分支和release里zip/tar.gz的lockScreen.node文件都不能被直接require调用。
自己电脑环境只有linux,悲剧node-gyp不支持linux下加载mingw32进行跨平台编译windows。 是否可以共享下编译正常可用的lockScreen.node文件。
感谢 : )
解决方案
Window下引用插件需要加./前缀 require("./src/lockScreen.node")
各位 ,需要管理员权限打开项目才能控制
目前编译成功,并且打印lock的结果返回success,并且执行了reg文件(注册表中已成功加进去)、使用管理员打开,但是还是无法屏蔽快捷键,楼主的代码是最新的吗?