最新autohotkey全部代码

global Netdelay:=600 ; 不写global, 函数穿透不进去

global sousuo="www.biying.com"

 


 

 

 

 

;这种全局定义要写在所有代码的前面才能让所有代码起作用.
SetCapsLockState , AlwaysOff
SetNumlockState, AlwaysOn
GroupAdd, DisableBracketAuto , PyCharm ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , 牛客网 ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , IDEA ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , GoLand ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , Android Studio ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , Xshell ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , Evaluate ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , SunAwtFrame ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , rider ;注意这种语句要放最前面才起作用
;GroupAdd, DisableBracketAuto , wpf ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , 微信开发者工具 ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , CLion ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , clion64 ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , vscode ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , Visual Studio Code ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto ,SunAwtFrame;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , clion ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , .cpp ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , .c ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , VNC ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , bash ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , cmd ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , Postman ;注意这种语句要放最前面才起作用
GroupAdd, DisableBracketAuto , Microsoft Visual Studio ;注意这种语句要放最前面才起作用
;GroupAdd, DisableBracketAuto , @ ;注意这种语句要放最前面才起作用


GroupAdd, docker , Xshell ;注意这种语句要放最前面才起作用
GroupAdd, docker , cmd ;注意这种语句要放最前面才起作用
GroupAdd, docker , bash ;注意这种语句要放最前面才起作用


GroupAdd, CopyEnable , Xshell ;注意这种语句要放最前面才起作用
;GroupAdd, CopyEnable , VNC ;注意这种语句要放最前面才起作用
GroupAdd, CopyEnable , cmd ;注意这种语句要放最前面才起作用
GroupAdd, CopyEnable , bash ;注意这种语句要放最前面才起作用
;GroupAdd, CopyEnable , Chrome ;注意这种语句要放最前面才起作用
;GroupAdd, CopyEnable , PyCharm ;注意这种语句要放最前面才起作用
GroupAdd, game , 星际争霸 ;注意这种语句要放最前面才起作用
GroupAdd, game , Warcraft ;注意这种语句要放最前面才起作用

SetTitleMatchMode, 2

SetTitleMatchMode, slow

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CapsLock & 7::SendInput ^{w}

 

CapsLock & f::SendInput 210102198908124112


;变量的计算复制用:= 不用=

 

;今天又进行了优化. 剪贴板里面如果有github.com也直接进入网址!

 

fun(x)
{


try{

If RegExMatch(x, "^www")
{

run %x%
}


else if RegExMatch(x, "^http")
{

run %x%
}

else if RegExMatch(x, "^https")
{

run %x%
}


else if RegExMatch(x, "^github.com")
{

DRIVE_LETTER=www.


a= %DRIVE_LETTER%%x%


run %a%
}

 

else{


run %sousuo%

sleep %Netdelay%

 

}

}catch
{run %sousuo%
}

 

 


return ; "Return" 期望 表达式.
}

 

;今天又进行了优化. 剪贴板里面如果有github.com也直接进入网址!

 

fun2(x)
{


try{

If RegExMatch(x, "^www")
{

run %x%
}


else if RegExMatch(x, "^http")
{

run %x%
}

else if RegExMatch(x, "^https")
{

run %x%
}


else if RegExMatch(x, "^github.com")
{

DRIVE_LETTER=www.


a= %DRIVE_LETTER%%x%


run %a%
}

 

else{


run %sousuo%

sleep %Netdelay%

 


}

}catch
{run %sousuo%
}

 

 


return ; "Return" 期望 表达式.
}


#IfWinActive ahk_group CopyEnable

^b::

Send ^{insert}
x=%clipboard%

fun2(x)
return

 

#IfWinActive ahk_class BAYONETTA


w::s
s::w


#IfWinNotActive ahk_group CopyEnable

^b::

Send ^c
x=%clipboard%
fun(x)

return

 

:*:whiel::while
return

 


#IFWinNotActive eoiuolkdjakfja;dsjfdsf ;作为上面星际结束符.

 

 

 

 

 

 

CapsLock & p::send print(){left}
:*:;d::

SetKeyDelay, 0.01

 

FormatTime, d, LongDate,yyyy-MM-dd,H点mm


Send %d%

return


#b::

Send ^c
run https://www.google.com/
sleep %Netdelay%
Send ^v
Send {enter}
return

 

 

 

 

 

 

 

 

;需要写一个按照像素移动鼠标的功能,做cv用,当然photoshop也可以使用.


CapsLock & Up::
MouseMove, 0, -1, 10, R
return


CapsLock & Down::
MouseMove, 0, 1, 10, R
return


CapsLock & Left::
MouseMove, -1, 0, 10, R
return


CapsLock & Right::
MouseMove, 1, 0, 10, R
return


CapsLock & 9::
send ,{PgUp}
return

CapsLock & 0::
send ,{PgDn}
return

 

 

 

 

;如何选中光标当前字.就是模拟鼠标敲2下的操作.

 

 

 

/*
linux下调试还是用gdb

还是用autohotkey来控制吧,没找到linux设置输入快捷键的方法

*/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/*
^t::
ime_status:=DllCall("GetKeyboardLayout","int",0,UInt) ;返回值的低位字包含了输入语言的语言标识符,高位字包含了键盘物理布局的句柄。


;获取67699721这个输入法代码
return
*/


/*
^t::
ime_status:=DllCall("GetKeyboardLayout","int",0,UInt)


;获取67699721这个输入法代码和134481924
return
*/

 

 

 

 

 

 


/*注意dll的名字可能跟windowsapi里面名字不一样,0表示空指针,并且注释一定要把*斜杠单独写一样才行,挺bug
*/

/*
调用windows Api .第一个参数是函数名,后面是type和参数值.
;下面这个是创建文件夹的.
^t::
DllCall("CreateDirectory", "Str", "dsaf",Ptr, 0)
return


*/

;好想废了insert这个建的功能,但是没找到api,但是因为有些软件insert跟其他软件insert相反,所以还是保留着吧,
;如果找到了底层api能锁定上就好了

 


; 这个函数 是修改输入法

 

switchime(ime )
{
if (ime = 1){
DllCall("SendMessage", UInt, WinActive("A"), UInt, 80, UInt, 1, UInt, DllCall("LoadKeyboardLayout", Str,"00000804", UInt, 1))
}else if (ime = 0)
{
DllCall("SendMessage", UInt, WinActive("A"), UInt, 80, UInt, 1, UInt, DllCall("LoadKeyboardLayout", Str,, UInt, 1))
}else if (ime = "A")
{
;ime_status:=DllCall("GetKeyboardLayout","int",0,UInt)
Send, #{Space}


}
}


/*
;下面写一个读取输入法的.

^t::
ime_status:=DllCall("GetKeyboardLayout","int",0,UInt)
StringLeft, ime_status, ime_status, 1 ;

if (%ime_status%=="1"){

}
else
{

}

return

 

^y::
ime_status:=DllCall("LoadKeyboardLayout", Str,, "67699721", 1)
if (%ime_status%>99999999){

}

return

*/

 

 

 

 

 

#f::
If WinActive("Everything"){
WinMinimize,A
return
}
Run "C:\Program Files\Everything\Everything.exe"

return

 

;注意11平台会禁止用win见.注意一下别大惊小怪.


#c::
SetKeyDelay, 1
switchime(0)
If WinActive("cmd.exe") {
switchime(0)
WinMinimize,A


return
}

If WinExist("cmd.exe")
{


WinActivate
switchime(0) ;写在激活的后面才行.
return
}

else
{


run, cmd
switchime(0)
a=%clipboard%
sleep, 200
MouseClick, left, A_ScreenWidth/2, A_ScreenHeight/2 ;居中点一下

send,{enter} ;这个点一下操作会清空clipborad,重新赋值一下即可.简单
clipboard=%a%
return
}
return


!c::
run cmd
return

 

 

 

 

 

 

#a::
SetKeyDelay, 1
If WinActive("360") {
WinMinimize,A
return
}
If WinExist("360"){
WinActivate

return
}
else{
run "C:\Users\zhangbo340\AppData\Roaming\360se6\Application\360se.exe"
;为了防止alt点开菜单栏
return
}

return

 

 

;下面部署多环境切换.因为公司电脑的配置和自己电脑不同,所以用逻辑判断来兼容.

 

 

 

 

 

 


!b::


if FileExist("D:\zhangbo340\Desktop\gapa.exe")
{run D:\zhangbo340\Desktop\gapa.exe
}

else if FileExist("C:\Users\Administrator\Desktop\gapa.exe"){
run C:\Users\Administrator\Desktop\gapa.exe
}


else if FileExist("C:\Users\Administrator\Desktop\Gamma Panel.exe"){
run C:\Users\Administrator\Desktop\Gamma Panel.exe
}


return


SetTitleMatchMode 2
#2::

SetKeyDelay, 1
If WinActive("Google Chrome") {
WinMinimize
}

If WinExist("ahk_class Chrome_WidgetWin_1"){


WinActivate ;什么都不细就是打开页面.
}

 

Else{
run www.baidu.com
}
return

 

 

#1::

SetKeyDelay, 1


If WinExist("ahk_class SunAwtFrame"){


WinActivate ;什么都不细就是打开页面.
}

 


return

 


#3::

SetKeyDelay, 1


If WinExist("ahk_class classFoxitReader"){


WinActivate ;什么都不细就是打开页面.
}

 


return

 

 

 

 

 

 

 

 

#x::

SetKeyDelay, 1
If WinActive("笔记.txt") {
WinMinimize,A

return
}
If WinExist("笔记.txt"){

WinActivate

return
}
else{

if FileExist("D:\zhangbo340\Desktop\笔记.txt")
{run D:\zhangbo340\Desktop\笔记.txt
WinActivate ,Notepad
}

else{
run C:\Users\Administrator\Desktop\笔记.txt
sleep 300 ; 不sleep的话,电脑容易反应不过来下面的代码
WinActivate ,Notepad
}


;为了防止alt点开菜单栏
WinActivate

return
}

return

 

 

;!x用来记录一些村文本. #x用来记录笔记
!x::

SetKeyDelay, 1
If WinActive("Notepad") {
WinMinimize,A

return
}
If WinExist("Notepad"){

WinActivate

return
}
else{

if FileExist("D:\zhangbo340\Desktop\笔记.txt")
{run notepad++
WinActivate ,Notepad
}

else{
run notepad++
sleep 300 ; 不sleep的话,电脑容易反应不过来下面的代码
WinActivate ,Notepad
}


;为了防止alt点开菜单栏
WinActivate

return
}

return

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

#z::
SetKeyDelay, 1
switchime(0)
If WinActive("Xshell"){
WinMinimize,A
return
}
If WinExist("Xshell"){

WinActivate
switchime(0)

}
else{

Run "C:\Program Files (x86)\NetSarang\Xmanager Enterprise 5\Xshell.exe"
switchime(0)

}


return

 

 

!z::
SetKeyDelay, 1
switchime(0)
If WinActive("Xshell"){
WinMinimize,A
return
}
If WinExist("Xshell"){

WinActivate
switchime(0)

}
else{

Run "C:\Program Files (x86)\NetSarang\Xshell 6\Xshell.exe"
switchime(0)

}


return

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

; 切换至sougou 调用这个函数即可switchime(1)
; 切换至英文 调用这个函数即可 switchime(0)

 

 

 

 

 

 

 

 

 


/*

;gc克隆代码


*/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

!g::
run D:\zhangbo340\Desktop\个人信息.txt

return

 

 

 

 

 

 

 

 

 

 


;通过if else已经完美的利用alt+x 启动笔记和最小化笔记,唤起笔记了.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;下面我要实现的功能是想在一段话左右加括号,只需要选中这段话之后按下shift+9就行.等号右边的变量需要加双%,其实还是有bug存在
;当剪贴板内容和选择内容相同时候有bug,所以如果你要复制一段话到一个新地方并且加上括号.就先复制话,然后输入括号再粘贴即可.顺序反了就出不来.目前只有这个一个bug

 

 

 

 

 

 

 

 

 

 

 


#IFWinNotActive Xshell;dsjfdsf

 

 

CapsLock & n::SendInput {_}

 


CapsLock & ,::SendInput {+}
CapsLock & .::SendInput {=}


;用;p来替换书写经常不好使,因为输入多个字符替换可能会bug
; caplock表示右,ctrl+caplock切换大小写
CapsLock::SendInput {Right} ;这样改就避免冲突了

 

^CapsLock::CapsLock ; 修改原始的caplock为ctrl+caplock

 

 

 

 

 

 

 

; 下面写这个使用方法: 加f 表示词跳转, 加shift表示连续选择, 松开表示不加这些东西.


CapsLock & f:: flag_C=1 ;小写d代替control键,实现跨词移动
CapsLock & f UP:: flag_C=0
CapsLock & shift:: flag_S=1 ;小写d代替control键,实现跨词移动
CapsLock & shift UP:: flag_S=0

shift & CapsLock:: flag_S=1 ;小写d代替control键,实现跨词移动
shift & CapsLock UP:: flag_S=0


;/**************CapsLock + j:左移************************/
CapsLock & j::
if flag_C
{
if flag_S
Send, ^+{Left}
else
Send, ^{Left}
return
}
else
{
if flag_S
Send, +{Left}
else
Send, {Left}
}
return


;/**************CapsLock + l:右移************************/
CapsLock & l::
if flag_C
{
if flag_S
Send, ^+{Right}
else
Send, ^{Right}
return
}
else
{
if flag_S
Send, +{Right}
else
Send, {Right}
}
return

;/**************CapsLock + i:上移************************/
CapsLock & i::
if flag_C
{
if flag_S
Send, +{Up}
else
Send, {Up}
return
}
else
{
if flag_S
Send, +{Up}
else
Send, {Up}
}
return

;/**************CapsLock + k:下移************************/
CapsLock & k::
if flag_C
{
if flag_S
Send, +{Down}
else
Send, {Down}
return
}
else
{
if flag_S
Send, +{Down}
else
Send, {Down}
}
return

;/**************CapsLock + h:句首************************/
CapsLock & h::
if flag_C
{
if flag_S
Send, {home}
else
Send, {home}
return
}
else
{
if flag_S
Send, {home}
else
Send, {home}
}
return

;/**************CapsLock + ;,句尾************************/
CapsLock & `;::
if flag_C
{
if flag_S
Send, {end}
else
Send, {end}
return
}
else
{
if flag_S
Send, {end}
else
Send, {end}
}
return


;/**************CapsLock + u,shanchu************************/
CapsLock & u::
if flag_C
{
Send, ^{backspace}

return
}
else
{

Send, {backspace}
return
}
return


;/**************CapsLock + o,shanchu************************/
CapsLock & o::
if flag_C
{
Send, ^{del}

return
}
else
{

Send, {del}
return
}
return

 

 

 

 

 

 

 

 


CapsLock & y::send print(type()){left 2}

 

 

 

 

 

 

 

 

 

 

 

 

 

 


CapsLock & m::Send import{space}

;send最稳的写法是每次send一个字符

 

 

 

 

 

 

 

 

 

 

 

 

 

CapsLock & r::send return{space}


CapsLock & 7::send ^{Backspace}
CapsLock & 8::send ^{del}

 

 

 


CapsLock & e::send exit(){enter}

 

CapsLock & c::send continue


SetWinDelay, 10
#ClipboardTimeout 2000
;这个版本已经基本修复了输入括号等shift与切换中英文输入法之间的冲突
^`::Suspend ; 给一个热键指定挂起的开关功能。


CapsLock & t::send 15122306087
;CapsLock & ::send 210102198908124112
CapsLock & b::

send,break

return

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

!p::
IfWinExist, 无标题 - 画图 ;注意这里面的标题名字就是打开程序里面写的标题,注意中间带空格.;这样写就控制了程序开关.

{

WinClose
return
}
else
{
run mspaint
return
}

 

!j::
IfWinExist, 计算器 ;注意这里面的标题名字就是打开程序里面写的标题,注意中间带空格.;这样写就控制了程序开关.

{

WinActivate,
return
}
else
{
run calc
return
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

:*:;m::15122306087@163.com
^NumpadAdd::SoundSet , +0.5, WAVE
^NumpadSub::SoundSet , -0.5, WAVE

 

 

 

 

 

 

 

 

 


#IFWinNotActive 星际争霸


F3::
SetKeyDelay, 0.01

d=.append()

Send %d%

Send, {Left}

return


#IFWinNotActive 星际争霸

F4::

SetKeyDelay, 0.01
d=''''''

Send %d%

 

send {left 3}

send {enter}
send {enter}
send {up}

return


#IFWinActive 星际争霸

F3::F3
F4::F4

 

 

 

 

 

 

 


;使用方法是输入,xun然后空格

:*:lsit::list
:*:braek::break
:*:berak::break
:*:,rr::return{space}
:*:dfe::def
:*:retrun::return
:*:retunr::return
:*:calss::class

:*:slef::self
:*:slfe::self
:*:apend::append
:*:appedn::append
:*:contiune::continue
:*:contnue::continue

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

:*:;id::
SetKeyDelay, 0.01


d=210102198908124112

 

Send %d%

 

return

/*自动复制搜索
*/

 

 

 

 

 

 

 

#IfwinActive , ahk_class ConsoleWindowClass

:*:;w::
switchime(0 )
SetKeyDelay, 0
send, nohup wget -t0 --timeout=9999999 &{left 25}


return


CapsLock & 7::send ^{w}


:*:;t::
switchime(0 )
SetKeyDelay, 0
send, tar -xvzf


return

^t::
switchime(0 )
SetKeyDelay, 0
send, tar -xvzf {space}


return

:*:;r::
switchime(0 )
SetKeyDelay, 0
send, docker run -ti --user root /bin/bash
send, {left 10}

return


:*:;y::
switchime(0 )
SetKeyDelay, 0
send, yum install -y {space}


return

 

 

#IfwinActive , ahk_group copyEnable

:*:;w::
switchime(0 )
SetKeyDelay, 0
send, nohup wget -t0 --timeout=9999999 &{left 25}


return


CapsLock & 7::send ^{w}


:*:;t::
switchime(0 )
SetKeyDelay, 0
send, tar -xvzf {space}


return

^t::
switchime(0 )
SetKeyDelay, 0
send, tar -xvzf {space}


return

:*:;r::
switchime(0 )
SetKeyDelay, 0
send, docker run -ti --user root /bin/bash
send, {left 10}

return


:*:;y::
switchime(0 )
SetKeyDelay, 0
send, yum install -y {space}


return

 

 

 

 

;因为xshell里面粘贴是shift+insert所以也给他改成ctrl+v

 

;/**************CapsLock + u,shanchu************************/
CapsLock & u::
if flag_C
{
Send, ^w

return
}
else
{

Send, {backspace}
return
}
return


;/**************CapsLock + o,shanchu************************/
CapsLock & o::
if flag_C
{
Send, ^{del}

return
}
else
{

Send, {del}
return
}
return

 

 

 

 

 

 

#IfwinActive , Xshell


:*:;ls::lsof -i:


;vim改建 用于快速保存或者关闭vim文件.


;超级find命令
:*:;f::
switchime(0 )
send ,find / -name {space}

return


#IfwinActive ahk_class ConsoleWindowClass

:*:;cm::cmake .&&make{enter}
:*:;ls::lsof -i:

;超级find命令
:*:;f::
switchime(0 )
send ,find / -name {space}

return

 

 

 

 

 

 

 

 

 

 

 

;Edit_GetSel Gets the starting and ending character positions of the current selection in an edit or rich edit control. You can use this macro or send the EM_GETSEL message explicitly.

;https://docs.microsoft.com/zh-cn/windows/win32/controls/em-getsel

 


;ime_status:=DllCall("SetClipboardData","int",CF_UNICODETEXT,UInt)

 

 

 

#IFWinNotActive , ahk_group CopyEnable111111111111
;因为bash不好使,所以强制加进去一个class

$+9::


send +9
send +0
send {left}

 


return


$+'::


send +'
send +'
send {left}

 


return

$+[::

 

send {{}
send {}}
send {left}

 


return

 

$[::

 

send {[}
send {]}
send {left}

 

return

 

$'::


send {'}
send {'}
send {left}

 

 

return

 

 

send {"}
send {"}
send {left}


return

 

 

 

 

 

 

#IfwinActive , ahk_group CopyEnable

 

^v::send,+{insert}
return

#IfwinActive , ahk_class ConsoleWindowClass


^v::

;MouseMove, A_ScreenWidth/2 , A_ScreenHeight/2 -10 ;居中点一下
MouseClick, right, A_ScreenWidth/2 , A_ScreenHeight/2 -10 ;居中点一下
return


;ime_status:=DllCall("GetClipboardData","int",CF_UNICODETEXT,UInt)

 

 

 

 

 

#IfWinNotActive ahk_group game
F1::

SetKeyDelay, 0.001


d=for i in :

Send %d%

Send, {Left 1}

return

 

 

 


^F1::
SetKeyDelay, 0.001


d=for i in range(len()):
clipboard=%d%
Send %d%

Send, {Left 4}

return

 

 

 


#IFWinNotActive 星际争霸

 

 

 

 

#IfWinActive Xshell

#q::
send,{Esc}
switchime(0 )
send,:q+1
send,{enter}
send,{enter}
return

^s::
send,{Esc}
switchime(0 )
send,:x
send,{enter}
send,{enter}
return

 

 

 

 

 

GroupAdd, StarCraft , StarCraft II

 


#IFWinNotActive eoiuolkdjakfja;dsjfdsf ;作为上面星际结束符.

^g::
SetKeyDelay, 0.001
switchime(0)

FormatTime, now_date, %A_Now%, yyyy-MM-dd ;格式化当前时间
d=git add . && git commit -am "no_comment" &&git tag %A_Now%&&git push

 


Send %d%
SetKeyDelay, 0.1
Send {LEFT 36}


Send {Enter}
return

 

 

 

:*:;id::
SetKeyDelay, 0.1


d=111111111111111111111111


Send %d%

 

return

 

上一篇:用AutoHotkey轻松自定义播放幻灯片的其中几张(可固定前置和后置幻灯片)


下一篇:AutoHotKey 使用笔记