hh2hh 发表于 2009-4-30 20:31:25

想用键盘上的按键"`"和"capslock"替代鼠标左右键

起因:我的小本是epc 900ha,平时用触摸板边上的左右键,很硬很难按。所以找了键盘上两个不常用的键来替代鼠标左右键的功能。

"`":是tab键上面的那个键
"capslock":是tab键下面的那个键
这两个键平时都用不着。

我试着用autoit3来实现这个映射功能,因为是新手,弄了1个小时也没弄好。确切地说是只实现了40%的功能。技术水平所限没办法用autoit3实现模拟鼠标拖拽的功能。

后来下载了个autohotkey,看了下文档用10分钟实现了。代码如下:
SetCapsLockState Off
Capslock::Click down
Capslock up::Click up
`::Click down right
` up::Click up right


我并不是来说autohotkey比autoit3好用之类的,我想请教一下,如果要用autoit3实现以上代码需要如何写?多谢!

ps。我用autoit3时遇到的难题是:在文档里没有找到激发“Capslock up”(松开按键)的事件的方法。

hh2hh 发表于 2009-4-30 21:46:39

又完善了一下autohotkey的代码,和我一样需求的兄弟们可以下载区用了。

;
; AutoHotkey Version: 1.x
; Language:       English
; Platform:       Win9x/NT
; Author:         hh2hh <h9s@163.com>
;
; Script Function:
;        Using "`" and "CapsLock" key as Left Button And Right Button on my laptop computer.
;

#NoEnv; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%; Ensures a consistent starting directory.

; following is my script - by hh2hh <h9s@163.com>
#KeyHistory 0
SetCapsLockState Off

`::
        GetKeyState, already_down_state, LButton
        If already_down_state = D
                return
        Click down
Return

` up::Click up

Capslock::
        GetKeyState, already_down_state, RButton
        If already_down_state = D
                return
        Click down right
Return

Capslock up::Click up right

; ~~ end of file


另外,我参考了NumpadMouse.ahk,这个是autohotkey帮助文档自带的一个脚本,搜索“Using Keyboard Numpad as a Mouse”可以找到。

hh2hh 发表于 2009-4-30 21:47:48

期待autoit3的解决方案

78391493 发表于 2009-5-1 06:17:45

HotKeySet()

hh2hh 发表于 2009-5-1 12:53:48

本帖最后由 hh2hh 于 2009-5-1 12:54 编辑

HotKeySet()
78391493 发表于 2009-5-1 06:17 http://www.autoitx.com/images/common/back.gif

这是我用hotkeyset的代码,(未完成预期的功能)。原因是无法用hotkeysetup绑定MouseClickUp("left")(按键松开)的事件。我没找到类似的方法。难道是我思路有错?

AutoItSetOption("TrayAutoPause",0)
AutoItSetOption("TrayIconHide",1)

HotKeySet("{CAPSLOCK}", "clickLeft")
HotKeySet("{`}", "clickRight")
HotKeySet("+{`}", "clickRight")
HotKeySet("^{`}", "clickRight")

HotKeySet("+!d", "exitApp");Shift-Alt-d
HotKeySet("+!c", "checkRuning");Shift-Alt-c

While 1
        Sleep(150)
WEnd

Func checkRuning()
        MsgBox(4096,"","I'm runing.")
        ;Exit 0
EndFunc

Func exitApp()
        MsgBox(4096,"","exit app.")
        Exit 0
EndFunc

Func clickLeft()
        MouseClick("left")
EndFunc   ;==>clickLeft

Func clickRight()
        MouseClick("right")
EndFunc   ;==>clickRight

sxd 发表于 2009-5-1 23:48:36

MouseUp
ps:也许是个人习惯不同把 我从来不用那2个金属的左右键
btw:我是1000h 握手    1000h有多点触摸 单击2点 就是右键
页: [1]
查看完整版本: 想用键盘上的按键"`"和"capslock"替代鼠标左右键