精华内容
下载资源
问答
  • MAC - macbook Ctrl键失灵的解决办法
    万次阅读
    2017-08-29 18:09:15

    重置 Mac 上的系统管理控制器 (SMC)

    重置方法:https://support.apple.com/zh-cn/HT201295

    注意:

    “按下键盘左侧的 Shift-Control-Option 键,然后同时按下电源按钮”。

    正常应该是电脑会先开机,然后在进度条出来之前电脑会自动关机。如果没有自动关机而是直接开机了,那说明重置有问题。再试一次,如果还不行的话,尝试重置NVRAM。

    重置NVRAM的方法:https://support.apple.com/zh-cn/HT204063

    “按住这些按键和电源按钮 10 秒钟。松开所有按键。再次按下电源按钮以开启 Mac。”

    如果开启Mac之后发现风扇异常;无法识别电池且无法充电,那么尝试按住这些按键和电源按钮 10 秒钟 以上(PS:我按了一分钟 -_-),然后再松开按键并开机。


    更多相关内容
  • 买了新电脑,用来学习的,安装了ps2019版本,但是安装过程中显示Command line option syntax error.Type Command/?for help 然后我就关掉继续安装,安装成功,打开ps 点击新建,一直没反应,反反复复试了好几遍...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼《单步、断点、图形界面调试,鼠标选中n行右键执行,powershell极大提升了linux脚本生产力》---linux中调试ps脚本的注意事项文章修改版,写于2019-06-20---------【第一...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

    《单步、断点、图形界面调试,鼠标选中n行右键执行,powershell极大提升了linux脚本生产力》

    ---linux中调试ps脚本的注意事项文章修改版,写于2019-06-20

    ---------【第一章 在linux中用shell脚本,有啥坏处?】---------

    shell脚本单步,断点难。尤其有些是awk子语句,sed子语句,甚至还有python。

    这根本就是相当于进入了另一种计算机语言。

    甚至调试1个shell脚本耗费的时间精力,顶调试20个ps脚本。shell的if,awk的if,sed的if,python的if,4种if。

    这就好像你脚上套了4层鞋一样,很酸爽。请看:

    ===========【shell脚本单步,断点难的例子】===========

    sed -e 'p;s,.V,,;n;h_' \

    -e s|.»|.|* \

    -e .*/,f;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/* | \

    sed 'N;N;N;sf\n, ,g' | \

    $(AWK) 'BEGIN { files[".M] = dirs[".M] = 1 } \

    { d=$$3; if (dirstd] != 1) { print "d", d; dirs[d] = 1 } \

    if ($$2 == $$4) filestd] = files[d] M H $$1; \

    else { print "fM, $$3 V" $$4, $$1; } } \

    END { for (d in files) print "f", df filestd] }'

    ===========【shell脚本单步,断点难的例子】===========

    这也是为啥要用linux版powershell的原因。

    ---------【第二章 在linux中用powershell脚本,有啥好处?】---------

    好处之一是可以用vscode调试。

    这样就有了和win同等的待遇:

    1 在vscode图形界面查看变量名,变量值。

    2 单步。

    3 断点。

    4 在vscode图形界面中,鼠标选中n行脚本,右键,执行。

    5 完全支持中文脚本名、参数名、变量名、函数名、的运行和调试。请看图:

    ---------【为啥要在linux上调试ps脚本】---------

    问:啥时候用linux版vscode,单步、断点调试linux版ps脚本?

    答:

    当ps1脚本中,含有linux命令的时候。

    当win中无法100%重现,linux环境,linux命令时,那么你就需要在linux中调试。

    ---------【第三章 linux中调试ps脚本的注意事项】---------

    应该尽量少用linux外部命令。

    或者把linux外部命令,用bash包裹起来,存放入ps变量值。

    =====================

    $bashcmd =

    @'

    echo '我是bash命令'

    echo '命令中可以有单引号'

    echo "命令中可以有双引号"

    echo '如需解析变量,则用这种括号,注意头尾必须换行'

    echo '@\"'

    echo '$a'

    echo '\"@'

    '@

    $powershell变量 = /usr/bin/bash -c $bashcmd

    #需要转义,有点不好

    =====================

    $powershell变量 =

    @'

    echo '我是bash命令'

    echo '命令中可以有单引号'

    echo "命令中可以有双引号"

    echo '如需解析变量,则用这种括号,注意头尾必须换行'

    echo '@"'

    echo '$a'

    echo '"@'

    '@ | /usr/bin/bash

    #不需要转义,推荐

    =====================

    问:为啥用bash把命令包裹起来?

    答:

    世界上没有片100%相同的叶子,也没有100%相同的脚本解释器。sh和bash甚至解释都不同。

    ps解释linux外部命令,和bash主要在【转义】,有细小差别。

    为了100%兼容bash旧命令和返回的结果,就要用bash包裹。

    从win到linux远程,用vscode+powershell,远程调试linux中的ps1脚本的例子。

    =====================

    #第一行代码。

    #在下面这行代码上,下断点。

    $powershell变量 =

    @'

    ls -l /tmp |awk '{print $9}'

    '@ | /usr/bin/bash

    #第n行代码。=====================

    ---------【第四章 在win中用vscode,远程调试linux中的ps1,的步骤】---------

    1 在win上安装最新版vscode,最低为1.35.1。

    2 安装vscode插件:remote-ssh,remote-ssh-explorer

    3 定义ssh配置文件路径:

    编辑c:\Users\你的用户名\AppData\Roaming\Code\User\settings.json

    加上一行:

    "remote.SSH.configFile": "d:\\vscode\\remote.txt"

    4 编写ssh配置文件内容:

    d:\vscode\remote.txt ,bom头+utf8格式。支持多个服务器,支持中文。Host 吃鸡ps62

    User root

    HostName 192.168.111.62

    IdentityFile ~/.ssh/id_rsa

    5 下载ssh:

    去github上的/PowerShell/Win32-OpenSSH/releases

    用ssh-keygen.exe,生成秘钥对。

    6 使用我编写的ssh-copy-id6.ps1即可部署本机公钥,到各个linux服务器。

    脚本最新版下载地址:

    盘。百度点com/s/1n3ahVhYTyrGIm9n4N1SPRw

    提取码:i55m

    7 测试:

    ssh.exe root@192.168.111.62 'date'

    8 点击左下角,点【吃鸡ps62】。发现打开了一个【新ssh的子vscode窗口】。

    这个窗口其实就是linux中安装的,linux版vscode。

    本地vscode,把远程vscode,偷偷安装在了 ~/.vscode-server

    可以在这个【新ssh的子vscode窗口】 ——》 插件里面,安装中文插件。

    可以在这个【新ssh的子vscode窗口】 ——》 插件里面,安装xxx语言插件。

    有了这个插件,即可代码高亮补全和调试,跟本地vscode一样。

    若跟本地vscode不一样,或者调试不灵,那么就是测试版的bug。

    9 在这个【新ssh的子vscode窗口】中,安装【powershell-preview】扩展。

    注意:

    【powershell】扩展,目前还不支持远程调试。

    你需要安装【powershell-preview】扩展。

    remote-ssh这是一个新功能,需要下一个稳定版本的powershell扩展才支持。

    10 打开a.ps1,在某一行下断点,然后按f5。

    11 点菜单---》终端---》新建终端。

    即可打开【那台linux】的命令行,即bash。

    12 看看左下角,就知道你连接到了哪台linux机子。

    结论:

    remote-ssh扩展,给powershell带来了,打开远程文件。

    remote-ssh-explorer扩展,给powershell带来了,浏览远程目录,文件。

    powershell-preview扩展,帮powershell带来了,远程调试。

    远程调试,是最主要的功能。你还可以在linux机子上,安装c#扩展,py扩展,java扩展等。调试工具。

    展开全文
  • 百度了无数次,surface pro 7 的解锁蓝牙失灵问题已经成为苏菲系列的通病 研究了一个小时,终于做出了针对苏菲蓝牙失灵问题的补丁。 分析:Windows10只有在用户长时间未登录时会产生此问题, 【伸手党福利】直接放...

    百度了无数次,surface pro 7 的解锁蓝牙失灵问题已经成为苏菲系列的通病
    研究了一个小时,终于做出了针对苏菲蓝牙失灵问题的补丁。
    分析:Windows10只有在用户长时间未登录时会产生此问题,


    【伸手党福利】直接放一个补丁下载地址:
    https://download.csdn.net/download/wwppp987/15506813
    解压到c盘根目录(目录已经创建好了,直接解压即可),然后将xml文件导入到计划任务中即可。


    本补丁针对win10,别的版本请看下原理,原理是相通的。

    1、powershell开权限

    C:\Windows\WinSxS
    下搜索powershell.exe,右键使用管理员权限运行

    在这里插入图片描述
    输入

    Set-ExecutionPolicy Unrestricted
    

    选择全是【a】
    在这里插入图片描述
    否则之后运行程序会报错

    项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次
    

    参考:https://blog.csdn.net/f786587718/article/details/76762461

    2、建立C:\BlueTeethReboot文件夹并建立三个文件:

    在这里插入图片描述
    三个文件内容:
    1.bat

    @echo off
    powershell -command C:\BlueTeethReboot\1.ps1 -BluetoothStatus Off
    choice /t 1 /d y /n >nul
    powershell -command C:\BlueTeethReboot\1.ps1 -BluetoothStatus On
    
    

    1.ps1

    [CmdletBinding()] Param (
        [Parameter(Mandatory=$true)][ValidateSet('Off', 'On')][string]$BluetoothStatus
    )
    If ((Get-Service bthserv).Status -eq 'Stopped') { Start-Service bthserv }
    Add-Type -AssemblyName System.Runtime.WindowsRuntime
    $asTaskGeneric = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and $_.GetParameters()[0].ParameterType.Name -eq 'IAsyncOperation`1' })[0]
    Function Await($WinRtTask, $ResultType) {
        $asTask = $asTaskGeneric.MakeGenericMethod($ResultType)
        $netTask = $asTask.Invoke($null, @($WinRtTask))
        $netTask.Wait(-1) | Out-Null
        $netTask.Result
    }
    [Windows.Devices.Radios.Radio,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
    [Windows.Devices.Radios.RadioAccessStatus,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
    Await ([Windows.Devices.Radios.Radio]::RequestAccessAsync()) ([Windows.Devices.Radios.RadioAccessStatus]) | Out-Null
    $radios = Await ([Windows.Devices.Radios.Radio]::GetRadiosAsync()) ([System.Collections.Generic.IReadOnlyList[Windows.Devices.Radios.Radio]])
    $bluetooth = $radios | ? { $_.Kind -eq 'Bluetooth' }
    [Windows.Devices.Radios.RadioState,Windows.System.Devices,ContentType=WindowsRuntime] | Out-Null
    Await ($bluetooth.SetStateAsync($BluetoothStatus)) ([Windows.Devices.Radios.RadioAccessStatus]) | Out-Null
    

    1.vbs

    set ws=WScript.CreateObject("WScript.Shell")
    
    ws.Run "c:\BlueTeethReboot\1.bat",0
    

    这三个文件的目的是重启蓝牙模块,根手动关闭和打开没有区别。

    3、建立计划任务

    在计划任务中,找到Microsoft》Windows下,右键》创建基本任务
    1、填写名字,
    2、当前用户登录时
    在这里插入图片描述
    3、启动程序
    在这里插入图片描述
    4、选择1.vbs
    在这里插入图片描述
    5、创建完成,然后右键》属性》勾选使用最高权限运行、隐藏
    在这里插入图片描述
    6、完成效果图:
    在这里插入图片描述


    效果:用户在登录时候自动关闭1秒后重启蓝牙模块。
    导致用户在系统登录之初蓝牙掉线,但是恢复速度很快,总体掉线时间一般不会超过2秒。
    对于苏菲这种非性能笔记本来说这点时间我还是等得起的。

    优点:用户锁屏时候不会运行此脚本,而是在用户注销或者重启机器时候运行。
    强烈推荐拥有苏菲的同志们使用此脚本~~

    展开全文
  • 我写了个贪吃蛇程序,c++ + windows编程写的,左边是游戏区,右边有暂停,加减速等按钮,刚开始可正常操作贪吃蛇,但是在按下按钮上下左右操作就没反应了,不知道为什么?求大神解答 #include #include #...
  • 对于Dell Precision M4800来说,触控板是ALPS,如果直接使用2017年2月发布的 DrHurt 版本的VoodooPS2Controller有以下bug: 数字锁定键Num Lock和LED指示灯,及功能切换不工作 亮度调节键被映射到Fn+F3和Fn+Insert,...

    前言

    对于Dell Precision M4800来说,触控板是ALPS,如果直接使用2017年2月发布的 DrHurt 版本的VoodooPS2Controller有以下bug:

    1. 数字锁定键Num Lock和LED指示灯,及功能切换不工作
    2. 亮度调节键被映射到Fn+F3Fn+Insert,Dell原生亮度键调节键Fn+Fn+不工作。
    3. 触控板开关键Fn+F5不工作
    4. SysRq/PrntScrn 不工作
    5. Pause(Fn+Insert)不工作
    6. 计算器键Calc不工作
    7. Ctrl+Alt+Delete不工作

     
    因此,为了完美使用Big Sur,必须对其进行修复。

     

    步骤一 准备工作

    工欲善其事,必先利其器。为了修复工作,我们先做准备。

    1. 抓取DrHurt的远程仓库VoodooPS2Controller

      git clone git@github.com:DrHurt/OS-X-ALPS-DRIVER.git
      cd OS-X-ALPS-DRIVER
      
    2. Xcode打开项目VoodooPS2Controller.xcodeproj,并根据你的MacOS版本配置好环境,确保XcodeProduct/Build测试编译成功

    3. 下载ioio调试工具, 解压后将ioio二进制文件复制到目录/usr/local/bin/

      wget https://bitbucket.org/RehabMan/os-x-ioio/downloads/RehabMan-ioio-2014-0122.zip
      
    4. 为了动态抓取键位的PS code/ADB code映射我们先写个简单的脚本vim ioio_debug.sh, 复制以下几行代码然后在vim:wq保存退出

      #!/bin/sh
      ioio -s ApplePS2Keyboard LogScanCodes 1
      watch "sudo dmesg | grep ApplePS2Keyboard | tail -20"
      

      并赋予可执行权限 chmod 755 ./ioio_debug.sh。 (注:如没有watch命令需要安装 brew install watch)

    5. 终端下运行./ioio_debug.sh测试键位调试是否成功,成功后终端会有以下输出

      argv[0] = { ioio }
      argv[1] = { -s }
      argv[2] = { ApplePS2Keyboard }
      argv[3] = { LogScanCodes }
      argv[4] = { 1 }
      ioio: setting property 'ApplePS2Keyboard:LogScanCodes' as number to 1 (0x1)
      Password:
      

      键入本机管理员密码后, 然后按任意键屏幕上会按照你的键位返回对应的PS CodeADB Code,就会显示如下终端输出信息.

      [ 2585.028727]: ApplePS2Keyboard: sending key 31=2d down
      [ 2585.102607]: ApplePS2Keyboard: sending key 1f=1 down
      [ 2585.683917]: ApplePS2Keyboard: sending key 7=16 down
      [ 2585.846499]: ApplePS2Keyboard: sending key 5=15 down
      [ 2586.028108]: ApplePS2Keyboard: sending key 3=13 down
      

    至此,准备工作完成,现在我们可以愉快的进行修复工作了。

     

    步骤二 修复数字锁定键和小键盘映射

    首先分析源码,得到键盘驱动源码主文件为VoodooPS2Keyboard.cpp

    先在终端下运行./ioio_debug.sh,点按小键盘上的每一个按键,先得到数字锁定键的PS2键位码为 [0x45], 然后再得到数字小键盘区域每个按键得到数字小键盘PS2 Code映射表,并结合ApplePS2ToADBMap.h整理出一份Apple的ADB Code映射关系如下:

    PS2 CodeADB Code(数字键)ADB Code(功能键)描述(数字键/功能键)
    [0x48]0x5b0x7e8 up arrow
    [0x50]0x540x7d2 down arrow
    [0x4B]0x560x7b4 left arrow
    [0x4D]0x580x7c6 right arrow
    [0x52]0x520x920 insert / CDROM inject
    [0x53]0x410x75. delete
    [0x49]0x5c0x749 page up
    [0x51]0x550x793 page down
    [0x47]0x590x737 home
    [0x4F]0x530x771 end

     

    然后在 bool ApplePS2Keyboard::init(OSDictionary * dict) 函数加一行 “_numKeypadLocked = true;” 初始化_numKeypadLocked变量.

    下一步再在 dispatchKeyboardEventWithPacket函数的switch (keyCode)方法中加入数字锁定键 [0x45] 的执行逻辑如下:

    bool ApplePS2Keyboard::dispatchKeyboardEventWithPacket(const UInt8* packet)
    {
    
        // handle special cases
        switch (keyCode)
        {
    
            // ......    
    
            case 0x45:  //num lock remapping
                keyCode = 0;
    
                //NUM LOCK fix For DELL Precision M4800
                if(goingDown)
                {
                    setNumLockFeedback(_numKeypadLocked);
                    _numKeypadLocked = !_numKeypadLocked;
                }
    
                // remap NUM PAD by NUMLOCK LED status
                if(!_numKeypadLocked)
                {
                    _PS2ToADBMap[0x48] = 0x5b;     // 8 up arrow
                    _PS2ToADBMap[0x50] = 0x54;     // 2 down arrow
                    _PS2ToADBMap[0x4B] = 0x56;     // 4 left arrow
                    _PS2ToADBMap[0x4D] = 0x58;     // 6 right arrow
                    _PS2ToADBMap[0x52] = 0x52;     // 0 insert / CDROM inject
                    _PS2ToADBMap[0x53] = 0x41;     // . delete
                    _PS2ToADBMap[0x49] = 0x5c;     // 9 page up
                    _PS2ToADBMap[0x51] = 0x55;     // 3 page down
                    _PS2ToADBMap[0x47] = 0x59;     // 7 home
                    _PS2ToADBMap[0x4F] = 0x53;     // 1 end
                    
                }
                else
                {
                    _PS2ToADBMap[0x48] = 0x7e;      // 8 up arrow
                    _PS2ToADBMap[0x50] = 0x7d;      // 2 down arrow
                    _PS2ToADBMap[0x4B] = 0x7b;      // 4 left arrow
                    _PS2ToADBMap[0x4D] = 0x7c;      // 6 right arrow
                    _PS2ToADBMap[0x52] = 0x92;      // 0 insert / CDROM inject
                    _PS2ToADBMap[0x53] = 0x75;      // . delete
                    _PS2ToADBMap[0x49] = 0x74;      // 9 page up
                    _PS2ToADBMap[0x51] = 0x79;      // 3 page down
                    _PS2ToADBMap[0x47] = 0x73;      // 7 home
                    _PS2ToADBMap[0x4F] = 0x77;      // 1 end
    
                }
                break;
    
            // .......    
        }
    }
    

    最后在键盘初始化函数initkeyboard里加入一行代码 “setNumLockFeedback(_numKeypadLocked);” 启用开机小键盘数字键锁定Num Lock。

    void ApplePS2Keyboard::initKeyboard()
    {
        //......
    
    
        setNumLockFeedback(_numKeypadLocked);       //开机启用小键盘数字键锁定Num Lock,点亮LED指示灯
    
    
        //......
    }
    

    至此,数字小键盘按键修复完成。编译打包,将生成的ApplePS2Controller.kext复制到/EFI/OC/Kexts/替换掉原来的文件,重启测试成功。

     

    步骤三 修复Dell原生亮度调节键Fn+/

    第一步: 修改SSDT,启用 e005e006 Dell原生PS2键位码(此处为不再详述,可参详SSDT源码)。

    第二步: 在VoodooPS2Keyboard-Info.plist的Custom ADB Map中加入以下映射将亮度调节键映射到F14F15

    e005=6b;FN+down arrow to brightness down
    e006=71;FN+up arrow to brightness up
    

    原生亮度调节键修复完成。

     

    步骤四 修复Dell原生触控板开关键Fn+F5

    先在终端下运行./ioio_debug.sh,点按Fn+F5得到PS2键位码为 [e01e]
    dispatchKeyboardEventWithPacket函数的switch (keyCode)方法中加入 [0x011e] (注:e0为扩展码标志,程序执行为0x01)的执行逻辑如下:

    bool ApplePS2Keyboard::dispatchKeyboardEventWithPacket(const UInt8* packet)
    {
        // handle special cases
        switch (keyCode)
        {
    
            case 0x011e:    // fn+f5 (Dell precision M4800)
            {
                unsigned origKeyCode = keyCode;
                keyCode = 0;
                if (!goingDown)
                    break;
                if (!checkModifierState(kMaskLeftControl))
                {
                    // get current enabled status, and toggle it
                    bool enabled;
                    _device->dispatchMouseMessage(kPS2M_getDisableTouchpad, &enabled);
                    enabled = !enabled;
                    _device->dispatchMouseMessage(kPS2M_setDisableTouchpad, &enabled);
                    break;
                }
                if (origKeyCode != 0x011e)
                    break; // do not fall through for 0x0128
                // fall through
            }
    
            // .......    
        }
    }
    

    编译打包,原生触控键修复完成。

     

    步骤五 修复截屏键SysRq/PrntScrn

    第一步: 先在终端下运行./ioio_debug.sh,点按Fn+End/Home得到PS2键位码为 [e037]

    第二步: 分析源码,我们可以看到源码中有case 0x0137:的执行逻辑是将 [e037] 映射到了触控板控制开关。所以,我们将原这段代码删除或者注释掉。

    //        case 0x0128:    // alternate that cannot fnkeys toggle (discrete trackpad toggle)
    //        case 0x0137:    // prt sc/sys rq
    //        {
    //            unsigned origKeyCode = keyCode;
    //            keyCode = 0;
    //            if (!goingDown)
    //                break;
    //            if (!checkModifierState(kMaskLeftControl))
    //            {
    //                // get current enabled status, and toggle it
    //                bool enabled;
    //                _device->dispatchMouseMessage(kPS2M_getDisableTouchpad, &enabled);
    //                enabled = !enabled;
    //                _device->dispatchMouseMessage(kPS2M_setDisableTouchpad, &enabled);
    //                break;
    //            }
    //            if (origKeyCode != 0x0137)
    //                break; // do not fall through for 0x0128
    //            // fall through
    //        }
    

    第三步: 在VoodooPS2Keyboard-Info.plist的Custom ADB Map中加入以下映射将SysRqPrntScrn映射到F13

    e037=69;fn+Home/End to F13
    

    第四步: 编译打包,将生成的ApplePS2Controller.kext复制到/EFI/OC/Kexts/替换掉原来的文件,重启。打开系统偏好设置>键盘>快捷键, 将截屏映射到SysRq/PrntScrnF13)。

     

    步骤六 修复Pause(Fn+Insert)

    第一步: 先在终端下运行./ioio_debug.sh,点按Fn+Insert得到PS2键位码为 [e045]

    第二步: 在VoodooPS2Keyboard-Info.plist的Custom ADB Map中加入以下映射将Pause(Fn+Insert)映射到F18

    第三步: 重复 步骤五 >第四步 将Pause(Fn+Insert)映射到你需要的功能键。

     

    步骤七 修复 计算器键Calc

    第一步: 先在终端下运行./ioio_debug.sh,点按Fn+Insert得到PS2键位码为 [e021]

    第二步: 在VoodooPS2Keyboard-Info.plist的Custom ADB Map中加入以下映射将Calc映射到F19

    第三步: 编译打包,将生成的ApplePS2Controller.kext复制到/EFI/OC/Kexts/替换掉原来的文件,重启

    第四步:用MacOS字带的工具自动操作Calc(F19)映射到计算器app。

     

    步骤八 修复Ctrl+Alt+Delete

    第一步: 先在终端下运行./ioio_debug.sh,点按Delete得到PS2键位码为 [e053]

    第二步: 分析源码VoodooPS2Keyboard.cpp, 得到case 0x0153 的运作逻辑是屏蔽了Ctrl+Alt+Delete以避免触发电源开关造成异常关机.
    为了实现与Windows一样的锁屏效果,修改case 0x0153源码如下将Ctrl+Alt+Delete映射到Ctrl+Command+Q

    bool ApplePS2Keyboard::dispatchKeyboardEventWithPacket(const UInt8* packet)
    {
        // handle special cases
        switch (keyCode)
        {
            // .......   
            case 0x0153:    // delete
                
                // check for Ctrl+Alt+Delete? (three finger salute)
                if (checkModifierState(kMaskLeftControl|kMaskLeftAlt))
                {
                    keyCode = 0;
                    if (goingDown)
                    {
                        // Note: If OS X thinks the Command and Control keys are down at the time of
                        //  receiving an ADB 0x7f (power button), it will unconditionaly and unsafely
                        //  reboot the computer, much like the old PC/AT Ctrl+Alt+Delete!
                        // That's why we make sure Control (0x3b) and Alt (0x37) are up!!
                        // then map to Ctrl + Command + Q (screen lock)
                        dispatchKeyboardEventX(0x37, true, now_abs);
                        dispatchKeyboardEventX(0x3b, true, now_abs);
                        dispatchKeyboardEventX(0xc, true, now_abs);
                        dispatchKeyboardEventX(0x7f, false, now_abs);
                    }
                    
                    dispatchKeyboardEventX(0x37, false, now_abs);
                    dispatchKeyboardEventX(0x3b, false, now_abs);
                    dispatchKeyboardEventX(0xc, false, now_abs);
                    dispatchKeyboardEventX(0x7f, false, now_abs);
                }
    
                break;
            // .......    
        }
    }
    

    第三步: 编译打包,将生成的ApplePS2Controller.kext复制到/EFI/OC/Kexts/替换掉原来的文件,重启

     
     
     

    自此,历经步骤一步骤八,我们所有按键均修复完成,可以愉快地玩耍了。。。。。。

    展开全文
  • IPMI无法执行命令

    千次阅读 2018-11-06 11:44:52
    今天部署IPMI出现设备无法创建,这个问题以前遇到过,大部分是模块没有载入,以下是我排错的步骤: 引用 ipmitool lan print 1 Could not open device at /dev/ipmi0 or /dev/ipmi...Get Channel Info command failed...
  • 今天在cmder ssh登录Linux服务器使用vim编辑文件,发现在Linux中非常方便的vim方向键无法正常使用,由此引发的一系列问题的解决方案通过搜索解决方案,大部分都是说修改为 bash ,但是实际上只解决了上下左右...
  • 借用我一个同事的话说,这个解决方案虽然完成了任务,但太恶心了(ps,他也遇到了跟我一样的问题,而具的是wpf原生按钮,这让这个问题更难理解了)   最后,希望有了解的大神帮我解释这个问题,从而得到不...
  • 本文中,将详细讲述如何使用pycharm调用docker中的python环境,并处理宿主机(本地)中的文件。 一、准备工作 本文所需要的工具如下 1.pycharm(专业版),只有专业版才支持ssh链接进行调试,而...
  • ubuntu使用总结

    2021-03-05 13:24:33
    当是/xlaGPU 而不是/GPU,tensorflow要conda install, pip install不能。 命令行运行过程中退出进程使用Ctrl+C(能够同时kill进程),而不是Ctrl+Z(不能kill掉进程,虽然进程不运行了,但是还在占据内存)。 ..
  • 现在发现使用MacOS系统的小伙伴越来越多,询问我的话题也都是MACpro的问题,其实MacOS电脑相对Win出问题的几率特别小,但是偶尔也会出一些毛病,例如不能上网,指纹不识别,电池死活不充电,扬声器突然没声音,蓝牙...
  • redis安全学习笔记

    千次阅读 2020-05-29 00:55:33
    客户端与Redis建立连接会自动选择0号数据库,不过可以随时使用SELECT命令更换数据库,如要选择1号数据库: 数据库 redis> SELECT 1 OK redis [1] > GET foo (nil) 然而这些以数字命名的数据库又与我们理解的数据库...
  • Tkinter包装一个音乐下载爬虫前言一、模块核心模块:辅助模块:路人模块:二、程序1.思路区块介绍1)header 部分2)article 部分3)footer 部分2.源代码总结 前言 (萌新小程序,高手勿喷) 近两天一不小心找到了...
  • 文 |豆豆来源:Python 技术「ID: pythonall」人类和动物最本质的区别就是人类懂的制造并使用工具,这是由上古时代一直延续至今的基因所决定的。前段时间朋友的一个业务需要大量...
  • 我已经半年没有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。 GNU/Linux 不是每个人都想的。如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了。 我不是一个狂热的自由软件份子,...
  • php cli模式

    2021-03-24 10:50:41
    php cli模式本来我的小爬虫在apache环境下set_time_limit(0) 就可以24小时不断爬,最近部署到nginx环境下就不灵了,各种504 timeout。所以干脆cli模式走起吧!手册:...
  • ",".NET 就是世界潮流","微软的毕竟是新技术","有钱就是有技术"…… 甚至在一番论战比较败下来还是要说:"Windows 性能差点,但是易用性强","Windows 是老百姓的,要求别那么高,微软那么有钱,以后想超过 ...
  • 【容器】初识Docker

    2021-04-27 16:13:47
    可以有多个,只有最后一个有效,并会被docker run的参数替换 ENTRYPOINT command ##指定容器启动时要运行的命令,只有一个,不回被docker run的参数替换 ONBUILD command ##类似钩子,父镜像被继承将触发 实际...
  • 我已经半年没有使用 Windows 的方式工作了。Linux 高效地完成了我所有的工作。 GNU/Linux 不是每个人都想的。如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了。 我不是一个狂热的自由软件...
  • 转自:... 完全 GNU/Linux 工作 — 摈弃 Windows 低效率的工作方式,发掘 Linux 身上的 UNIX 气质 我已经半年没有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。 GNU/Lin...
  • 这个 示范教程 用于 编写 BSD 手册页 (manual page), 它 使用了 -mdoc 宏定义包, 这是个 基于内容 和 基于宏域 (domain -base) 的 格式化包, 交由 troff(1) 处理. 它的 前身 -man7 包, 定义了 页面布局 (page layout...
  • 我已经半年没有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。GNU/Linux 不是每个人都想的。如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了。我不是一个狂热的自由软件份子,...
  • 如果你使用的是VMware Workstation 6.0.0,现在你应该已经能看到VMware Tools安装的效果了:鼠标再也不需要Ctrl+Alt切换于虚拟与现实之间,一切过渡得那么自然;虚拟机的分辨率也能依窗口的大小来自动适应,...
  • 我已经半年没有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。 GNU/Linux 不是每个人都想的。如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了。 我不是一个狂热的自由软件份子...
  • 自加入RedHat起,我就把家里的台式机(Ubuntu 16.04 LTS)的默认登录用户veli切换成了huanli, 主要是为了跟公司的电脑配置对齐以方便未来WFH,但引发了一个vim使用异常。在我的.vimrc中,有这样一段配置代码, if ...
  • CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cfe0858884de 22872cc86f9c "/bin/bash -c -- 'wh鈥 5 days ago Up 5 days k8s_centos_centos-7c556897c8-pxj9b_default_1db8f14a-3900-4826-beab-10b1f...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 484
精华内容 193
关键字:

用ps后command失灵了

友情链接: statusCtrl.rar