zoukankan      html  css  js  c++  java
  • Thinkpad在Windows8上热键的解决方案

    【题外话】

    Windows 8的正式版都发布半年多了,可是Thinkpad的对应驱动却一直不完善,尤其是大部分快捷键都不能用,实在是太不方便了,今天闲的无事,经过查阅和摸索,发现要解决快捷键的问题其实很简单。以下解决方案在Thinkpad T420 + Windows 8 64bit上测试通过。

    【文章索引】

    1. 问题描述
    2. Win8上的新驱动
    3. 电源管理的问题
    4. Win7和Win8热键的不同

    【一、问题描述】

    如果去官网找Win8驱动的话,发现原来很多常见的软件都没有,比如电源管理软件(powermanager*.exe,不是电源管理驱动)、ThinkVantage Communications Utility(Communications*.exe)等等。而如果安装完热键驱动程序后(SIhotkey*.exe),会发现Fn+F3(电源管理)、Fn+F8(小红帽和触摸板设置)等都无法使用,而Fn+F5(无线设置)变为了开关Win8自带的飞行模式,Fn+F6(摄像头和音频设置)会出现如下图所示的提示信息。

    【二、Win8上的新驱动】

    仔细看的话会发现Win8的驱动下多了一个新的驱动,就是Lenovo Settings Dependency(setting*.exe),这个驱动仅限Windows8安装,不过安装完了,上述这些热键仍然出现之前的问题。不过从名字来看,这并不是一个单独的程序,而从联想论坛中的解答来看(http://forums.lenovo.com/t5/Windows-8/What-does-quot-Lenovo-Settings-Dependency-Package-quot-do/td-p/886353),安装完这个程序之后,还需要去Windows8的应用商店下载一个叫“Lenovo Settings”的Metro应用,即安装如下图所示的应用即可,安装后会发现Fn+F6已经可以使用,而且不仅仅包括以前的摄像头和音频设置,还包括电源、无线热点等设置。

    【三、电源管理的问题】

    虽然联想在Windows8上希望大家使用新的Metro界面来管理常用的设置,但是Lenovo Settings中可以设置的选项毕竟还是少了些,尤其是电源管理的设置。在Lenovo Settings下,只能查看电源的连接状态、电池的健康状况(就显示一个Good,跟没有又有什么区别呢),此外再就是黄口USB充电的设置和是否启用电池延时,所以我们还需要安装Win7那样的电源管理软件。

    如果直接从官网上下载Win7的电源管理器(v6.4x)的话,会提示无法安装的错误,不过比较有意思的是,如果下载v6.30的话是可以直接安装的。安装完以后就能像Win7一样在系统的电源选项里就能见到电源管理器的图标了,同时也可以像以前一样打开电源管理器查看电池的状态以及设置电源配置。

    当然,这里推荐你安装联想的ThinkVantage System Update软件,安装后获取下更新会发现竟然提示你更新到电源管理器v7.34,更新完就如下图所示,但是不知道为什么官网上没有这个驱动。(5月25日晚补,貌似现在通过System Update也没法更新到这个版本了)

    【四、Win7和Win8热键的不同】

    到目前为止,虽然安装了电源管理器,但是Fn+F3还是不可用的,其实这是因为Win8下热键驱动与Win7下不同的原因。如果你以前自定义过Win7的热键驱动,你可能知道其热键定义在注册表的HKLM\SOFTWARE\IBM\TPHOTKEY\Class或者HKLM\SOFTWARE\Lenovo\TPHOTKEY\Class下,如下图所示。

    但是,在Win8上,热键在注册表中定义的位置发生了变化,其位置在HKLM\SOFTWARE\Lenovo\ShortcutKey\AppLaunch下,而且,由于同时支持桌面应用和Metro应用,其还特别增加了一个AppType的属性,其中AppType=2时表示这个热键对应Metro应用,其之下应当建立一个名为Metro的项,并添加名为URI和PackageName的字符串,例如装完Lenovo Settings Dependency后,会出现如下的键值。

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Lenovo\ShortcutKey\AppLaunch\6]
    "AppType"=dword:00000002
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Lenovo\ShortcutKey\AppLaunch\6\Metro]
    "URI"="lenovo-metro-settings:PARAM?"
    "PackageName"="LenovoCorporation.LenovoSettings_4642shxvsv8s2"

    而如果是对应桌面应用的话,则AppType=1,同时应当创建名为Desktop的项,而Desktop项中的键则与TPHOTKEY中的对应即可,例如如果让Fn+F3对应打开电源管理的话,则应当创建类似如下的注册表项(具体目录有可能会不同)。

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Lenovo\ShortcutKey\AppLaunch\3]
    "AppType"=dword:00000001
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Lenovo\ShortcutKey\AppLaunch\3\Desktop]
    "File"="C:\\PROGRA~2\\ThinkPad\\UTILIT~1\\PwmOSDV.exe"
    "LockedMode"=dword:00000001
    "Parameters"=""

    这样的话就可以像Win7一样通过Fn+F3打开选择电源方案的对话框了。

    而如果需要Fn+F8设置小红帽和触摸板的话,还需要安装UltraNav辅助程序(UltraNavUtility*.exe),这个程序在Win8的驱动里是没有的,不过经过测试,适用于Win7的版本同样适用于Win8,所以只需下载对应的Win7版本即可。安装完同样与TPHOTKEY中的对应即可,例如如下的注册表项(具体目录有可能会不同)。

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Lenovo\ShortcutKey\AppLaunch\8]
    "AppType"=dword:00000001
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Lenovo\ShortcutKey\AppLaunch\8\Desktop]
    "File"="C:\\PROGRA~1\\ThinkPad\\ULTRAN~1\\UNAVOSD.exe"
    "Parameters"="/OSD"

    除此之外,如果你不喜欢Win8这种新式的Fn+F6的Lenovo Settings的话,你还可以选择安装Win7版的ThinkVantage Communications Utility,然后修改Fn+F6的设置即可。

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Lenovo\ShortcutKey\AppLaunch\6]
    "AppType"=dword:00000001
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Lenovo\ShortcutKey\AppLaunch\6\Desktop]
    "File"="C:\Program Files\Lenovo\Communications Utility\TPFNF6.exe"
    "Parameters"="/HOTKEY"

    【后记】

    同样的,你还可以自定义Fn+F5、ThinkVantage(序号为Ex_17)等按键,由于我本子没有蓝牙也没有3G,所以Fn+F5变为飞行模式对于我而言正好,我也就没再装Access Connections,感兴趣的可以自己尝试下。


    如果您觉得本文对您有所帮助,不妨点击下方的“推荐”按钮来支持我!

    本文及文章中代码均基于“署名-非商业性使用-相同方式共享 3.0”,文章欢迎转载,但请您务必注明文章的作者和出处链接,如有疑问请私信我联系!

  • 相关阅读:
    .NET异常处理最佳实践
    Resharper4.5破解程序下载
    Firefox报“使用了无效的安全证书”错误的解决方法
    jQuery培训PPT
    Windows常用命令集即开始→运行→输入的命令集锦
    “NHibernate.Cfg.Environment的类型初始值设定项引发异常”的解决方法
    浅析SQL having子句、如何使用having子句及where子句与having子句的区别
    浅析SQL中 in 与 exists 用法的区别及其各自执行流程、not in/not exists区别、sql优化应该如何选择in还是exists
    浅析SQL优化查询性能的最佳实践
    SQL中的cast和convert的用法和区别以及时间转换
  • 原文地址:https://www.cnblogs.com/mayswind/p/3098644.html
Copyright © 2011-2022 走看看