ScreenLock icon indicating copy to clipboard operation
ScreenLock copied to clipboard

screenlock-node 编译后得到的node二进制文件无法控制按键

Open phil-cheng opened this issue 3 years ago • 6 comments

问题描述

  • 我也在基于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的代码区别?

本地编译环境

其他

  • 我在打32位的时候发现,如果直接npm install --arch=ia32打出的包,在使用node调用时会提示为无效的32位应用,必须要把nodejs 改成32位的才行。

phil-cheng avatar Nov 16 '21 08:11 phil-cheng

我出现了类似的问题,git 直接获取的源码里,lockScreen.node 不能直接使用(因为我是 AMD cpu 么?)。

我重新编译了 screenlock,覆盖原来的 lockScreen.node ,程序可以启动了,但是我希望的热键都没有效果(Alt+F4,ctrl+alt+delete )。

注意到源码里 EnableDebugPriv(); 函数调用是注释掉的,我去掉它的注释,重新编译是成功的,但是无法使用。

CheneyWong avatar Nov 26 '21 09:11 CheneyWong

各位 ,需要管理员权限打开项目才能控制 image

Mad-hu avatar Dec 03 '21 01:12 Mad-hu

还是不行,就算有管理员启动项目或者程序都是无法禁用热键

atmImphy avatar Jan 11 '22 12:01 atmImphy

@atmImphy 执行项目里的UAC.reg,重启机器,管理启动命令行,执行命令:

// cd lockScreen.node dir
node
const screenLock = require('lockScreen.node');
screenLock.lock();
``
在试一下看看是否能够锁定快捷键

Mad-hu avatar Jan 20 '22 08:01 Mad-hu

问题描述

同样的问题,直接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")

ryanemax avatar Apr 02 '22 16:04 ryanemax

各位 ,需要管理员权限打开项目才能控制 image

目前编译成功,并且打印lock的结果返回success,并且执行了reg文件(注册表中已成功加进去)、使用管理员打开,但是还是无法屏蔽快捷键,楼主的代码是最新的吗?

sunshuaicode avatar Jul 18 '22 10:07 sunshuaicode