本帖最后由 虫子 于 2017-6-12 01:39 编辑
发现附件发不了,只好将 ahk 的脚本发上来分享,大家安装完神器 ahk(https://autohotkey.com/)
之后将以下脚本保存为后缀名 ahk 的文件,放于 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup,这样开机启动就完成啦。
之所以有这个脚本是学习英语复制粘贴太烦,便去ahk论坛凑了这么个脚本,比什么exe靠谱多了。自己还做了关联mdict的热键启动exe,通过surface的蓝牙笔,选中单词,点击笔帽自动调用粘贴板弹出字典。这个体验完美!需要的话就提供vs源码让大家自行封装exe哈。(ps:也做过关联edge 的搜索,类似一键谷歌功能,发现因为自己的技术,失灵时不灵。放弃)
- ;Auto copy clipboard
- ~Lshift::
- TimeButtonDown = %A_TickCount%
- ; Wait for it to be released
- Loop
- {
- Sleep 10
- GetKeyState, LshiftState, Lshift, P
- if LshiftState = U ; Button has been released.
- break
- elapsed = %A_TickCount%
- elapsed -= %TimeButtonDown%
- if elapsed > 200 ; Button was held down long enough
- {
- x0 = A_CaretX
- y0 = A_CaretY
- Loop
- {
- Sleep 20 ; yield time to others
- GetKeyState keystate, Lshift
- IfEqual keystate, U, {
- x = A_CaretX
- y = A_CaretY
- break
- }
- }
- if (x-x0 > 5 or x-x0 < -5 or y-y0 > 5 or y-y0 < -5)
- { ; Caret has moved
- clip0 := ClipBoardAll ; save old clipboard
- ;ClipBoard =
- Send ^c ; selection -> clipboard
- ClipWait 1, 1 ; restore clipboard if no data
- IfEqual ClipBoard,, SetEnv ClipBoard, %clip0%
- }
- return
- }
- }
- ~LButton::
- MouseGetPos, xx
- TimeButtonDown = %A_TickCount%
- ; Wait for it to be released
- Loop
- {
- Sleep 10
- GetKeyState, LButtonState, LButton, P
- if LButtonState = U ; Button has been released.
- {
- If WinActive("Crimson Editor") and (xx < 25) ; Single Click in the Selection Area of CE
- {
- Send, ^c
- return
- }
- break
- }
- elapsed = %A_TickCount%
- elapsed -= %TimeButtonDown%
- if elapsed > 200 ; Button was held down too long, so assume it's not a double-click.
- {
- MouseGetPos x0, y0 ; save start mouse position
- Loop
- {
- Sleep 20 ; yield time to others
- GetKeyState keystate, LButton
- IfEqual keystate, U, {
- MouseGetPos x, y ; position when button released
- break
- }
- }
- if (x-x0 > 5 or x-x0 < -5 or y-y0 > 5 or y-y0 < -5)
- { ; mouse has moved
- clip0 := ClipBoardAll ; save old clipboard
- ;ClipBoard =
- Send ^c ; selection -> clipboard
- ClipWait 1, 1 ; restore clipboard if no data
- IfEqual ClipBoard,, SetEnv ClipBoard, %clip0%
- }
- return
- }
- }
- ; Otherwise, button was released quickly enough. Wait to see if it's a double-click:
- TimeButtonUp = %A_TickCount%
- Loop
- {
- Sleep 10
- GetKeyState, LButtonState, LButton, P
- if LButtonState = D ; Button has been pressed down again.
- break
- elapsed = %A_TickCount%
- elapsed -= %TimeButtonUp%
- if elapsed > 350 ; No click has occurred within the allowed time, so assume it's not a double-click.
- return
- }
- ;Button pressed down again, it's at least a double-click
- TimeButtonUp2 = %A_TickCount%
- Loop
- {
- Sleep 10
- GetKeyState, LButtonState2, LButton, P
- if LButtonState2 = U ; Button has been released a 2nd time, let's see if it's a tripple-click.
- break
- }
- ;Button released a 2nd time
- TimeButtonUp3 = %A_TickCount%
- Loop
- {
- Sleep 10
- GetKeyState, LButtonState3, LButton, P
- if LButtonState3 = D ; Button has been pressed down a 3rd time.
- break
- elapsed = %A_TickCount%
- elapsed -= %TimeButtonUp%
- if elapsed > 350 ; No click has occurred within the allowed time, so assume it's not a tripple-click.
- { ;Double-click
- Send, ^c
- return
- }
- }
- ;Tripple-click:
- Sleep, 100
- Send, ^c
- return
- ~^a::Send, ^c ;Ctl+A = Select All, then Copy
- ~mbutton::
- WinGetClass cos_class, A
- ;; emacs does pasting on middleclick by itself
- if (cos_class <> "Emacs")
- SendInput ^v
- return
复制代码
|