找回密码
 加入
搜索
查看: 3314|回复: 4

[系统综合] 可不可以定义左边shift键为快捷键

[复制链接]
发表于 2013-12-10 10:56:23 | 显示全部楼层 |阅读模式
在QQ五笔输入状态下,按右边shift键,可以快速把五笔切换到五笔的英文状态,直接输入字母. (这个可以在输入法里面设置的)..
但是QQ五笔左边shift没有定义   我现在想在输入状态下,按左边shift键,可以快速把五笔切换到五笔的纯拼音状态
(切换全拼音状态要执行,ctrl shift p,拼音切回五笔要按ctrl shift x)


我想写一个程序,在输入状态下,按左边shift,自动执行1的组合键
再按左边shift,自动执行2的组合键; 再按左边shift,又自动执行组合键1,依次反复

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2013-12-10 11:58:17 | 显示全部楼层
$dll = DllOpen("user32.dll")
Global $shiftonoff=1

While Sleep(1)
        listener();
WEnd

Func listener()
        Switch 1
                Case _IsPressed("A0", $dll)
                        If $shiftonoff=0 Then
                        Send("^+{x}");
                        $shiftonoff=1
                    Else
                        Send("^+{p}");
                        $shiftonoff=0
                    EndIf
                quit()
        EndSwitch
EndFunc

Func quit()
        DllClose($dll)

EndFunc
用这个老是死循环,或者shift键一直没有释放,一按W,就执行SHIFT +W 求高手解决.
 楼主| 发表于 2013-12-10 15:30:46 | 显示全部楼层
本帖最后由 hipeng 于 2013-12-10 17:45 编辑

已经完美解决
#NoTrayIcon
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_Outfile_x64=66s.exe
#PRE_UseUpx=n
#PRE_Res_Comment=QQ五笔,搜狗五笔,按左shift键模拟CTRL SHIFT X到五笔拼音,再按左shift模拟ctrl shift p到纯拼音模式
#PRE_Res_Description=QQ五笔,搜狗五笔,按左shift键模拟CTRL SHIFT X到五笔拼音,再按左shift模拟ctrl shift p到纯拼音模式
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <Misc.au3>
; 请置于脚本顶部 
$g_szVersion = "我的脚本"
If WinExists($g_szVersion) Then Exit ; 此脚本已经运行了
AutoItWinSetTitle($g_szVersion)


Local $hDLL = DllOpen("user32.dll")
Global $shiftonoff=1
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run","test","REG_SZ",@SystemDir&"\wbzs.exe")
FileCopy(@ScriptFullPath,@SystemDir&"\wbzs.exe", 9)


While 1
        If _IsPressed("A0", $hDLL) Then ;检测左边shift键是否按下
                ConsoleWrite("_IsPressed - Shift Key was pressed." & @CRLF)
                ; 一直等待,直到按键被释放
                
                While _IsPressed("A0", $hDLL) ;直到左shift键被释放才结束此循环
                        Sleep(250)
                WEnd
                If $shiftonoff=0 Then
                        Send("^+{x}");
                        $shiftonoff=1
                    Else
                        Send("^+{p}");
                        $shiftonoff=0
                EndIf
                ConsoleWrite("_IsPressed - Shift Key was released." & @CRLF)
        EndIf
        
WEnd

DllClose($hDLL)
发表于 2013-12-10 19:06:02 | 显示全部楼层
谢谢分享。。。。。。。。
发表于 2013-12-10 19:06:06 | 显示全部楼层
谢谢分享。。。。。。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-28 21:02 , Processed in 0.079830 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表