C# 笔记本电脑上的Windows 10访问键盘灯

C# 笔记本电脑上的Windows 10访问键盘灯,c#,windows-10,C#,Windows 10,我最近买了一台联想t420笔记本电脑。我用SSD升级了它,从7点升级到10点。然后我安装了一个干净的Windows10映像,没有所有的膨胀软件。我想在不安装联想软件的情况下使用键盘灯。它不是背光,而是显示屏上方摄像头旁边的一个白色LED。当我冷启动机器时,我看到它在一瞬间启动,我假设这是测试后或类似启动过程的一部分,因此我认为有某种方法可以连接到它 我曾尝试在Windows10UWPAPI中使用新的Lamp类,但这不起作用。我还尝试了使用设备枚举方法,但没有显示任何类似LED的内容 这是我到目前

我最近买了一台联想t420笔记本电脑。我用SSD升级了它,从7点升级到10点。然后我安装了一个干净的Windows10映像,没有所有的膨胀软件。我想在不安装联想软件的情况下使用键盘灯。它不是背光,而是显示屏上方摄像头旁边的一个白色LED。当我冷启动机器时,我看到它在一瞬间启动,我假设这是测试后或类似启动过程的一部分,因此我认为有某种方法可以连接到它

我曾尝试在Windows10UWPAPI中使用新的Lamp类,但这不起作用。我还尝试了使用设备枚举方法,但没有显示任何类似LED的内容

这是我到目前为止试过的代码,有点精简

Lamp lamp = await Lamp.GetDefaultAsync();
此灯亮起=空

string selectorString = Lamp.GetDeviceSelector();
DeviceInformationCollection devices = await DeviceInformation.FindAllAsync(selectorString);
这也会导致null

这是设备枚举代码:

DeviceInformationCollection devices = devices = await light.EnumerateDevices();
这给了我大约291个不同的设备在集合中,没有一个似乎匹配。由于名单很长,我没有在这里发帖,但如果有人要求,我可以在这里发帖

如果不是C语言,我是否可以通过C语言访问LED

编辑:我刚找到键盘键,我以前有不好的信息,它是Fn+Pgup。这是可行的,所以我想我不需要自己写东西,但我仍然很好奇为什么我找不到一个钩子


作为一个学习练习,我仍然想知道如何使用LED。

好的,所以我认为这是我将要得到的答案,我想把它放在这里,供未来好奇的人使用

这里有一个链接,指向一个页面,其中包含如何从Linux和Windows获取ThinkLight的大量信息。

以下是重要的信息,以防链接中断。

使用键盘控制ThinkLight在所有系统上都有效,因为它完全依赖BIOS。只需按Fn+PageUp即可在打开和关闭状态之间切换

从##30系列机型(T430、T530、W530等)开始,击键更改为Fn+空格,以便更好地适应新的6行键盘布局。在带有背光键盘的型号上,有4种状态:关闭、暗淡背光、全背光和带ThinkLight的全背光。没有背光键盘的型号只有ThinkLight打开和ThinkLight关闭,这可以通过在安装了背光键盘的型号的BIOS中禁用背光键盘来实现

通过thinkpad acp进行软件控制

通过thinkpad acpi进行软件控制 thinkpad ACPI提供了使用ACPI控制灯光的支持。安装后,一个简单的

# echo 255 > /sys/class/leds/tpacpi\:\:thinklight/brightness
打开它,然后打开一个

# echo 0 > /sys/class/leds/tpacpi\:\:thinklight/brightness
再次关闭它

这允许一个人在脚本中控制灯光。不幸的是,目前还没有已知的ThinkPad配备光传感器

要在没有根权限的脚本中使用这些控件,应运行

# chmod 666 /sys/class/leds/tpacpi\:\:thinklight/brightness, which is probably best done using udev.
应用程序

  • led通知:Pidgin插件使用任何led指示新的 信息。我已经通过分叉led通知来支持ThinkLight thinkpad acpi。下面的插件与 最新的洋泾浜或是没有为我编译。原著作者 led通知似乎是一种错误。另一个叉洋泾浜导致的通知 写入用户定义的字符串(添加到Gentoo/Linux)

  • gaim thinklight:如果您使用的是gaim,则使用gaim thinklight插件 将使您能够使用ThinkLight作为新功能的指示灯 信息。这取决于thinkpad acpi

  • gaim lighthink:gaim lightthink是gaim thinklight的替代品。 洋泾浜闪烁灯:洋泾浜闪烁灯是 用于洋泾浜的gaim lighthink

  • rocklight:rocklight是一个xmms可视化插件,使 ThinkLight随音乐节拍闪烁。该方案还包括: 一个独立的频闪仪模式程序

  • thinkblinkd:[1]thinkblinkd是一个python守护进程,用于控制 thinklight(可能还有您的Thinkpad上的其他灯)随附 守护进程和控制脚本

    使用HDAPS的防盗警报脚本可选择性地闪烁 报警启用时ThinkLight(默认情况下禁用,以启用 设置$use_light=1)

  • kopete thinklight:[2]此kopete插件将启用 thinklight作为新消息的通知机构。愚蠢的小家伙 闪烁ThinkLight:[3]一个可以设置为SUID的小C程序 这样您就可以从需要执行的非特权程序中使用它 一点通知

  • thinkalert:[4]另一个C程序,可能被设置为SUID允许 操纵ThinkLight的非特权程序。增加一些 “愚蠢的小黑客眨了眨ThinkLight”的特写 节目

  • thinklight通知:这个进化插件通知用户 新信息到达时闪烁的灯

  • ThinkBlink:blink.sh是制作ThinkLight的通用bash脚本 眨眼它可以用于任何应用程序

Windows支持 同样,用键盘控制ThinkLight也可以在没有任何附加软件的情况下工作。IBM/Lenovo的热键功能软件添加了OSD图标,当灯打开/关闭时会出现这些图标

通过热键功能进行软件控制
热键功能软件公开了一个允许(除其他外)控制ThinkLight的界面。有关更多信息,请参阅Python脚本for Windows以控制ThinkPad功能

您可能需要一些低级I/O驱动程序。您的灯光/指示灯很有可能甚至没有被检测到,更不用说被操作系统识别了。@我曾经怀疑过的怪癖。我看了联想的网站,找不到一个只为照明的司机。也许我能找到一个这样做,并从中提取出我所需要的。我有一种感觉,光与o相连