1. 欧陆风云
  2. 无人深空
  3. 骑马与砍杀
  4. 文明5

涉及的动作包括:

  • 自动按键
  • 界面判断
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
#SingleInstance force
; #Warn  ; Enable warnings to assist with detecting common errors.
; SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
; SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
SetTitleMatchMode, 2
CoordMode, Mouse, Screen

now = Format("20200116002159")

; #InstallKeybdHook

;start of script

;#IfWinActive UltraEdit
;^j::MsgBox You pressed Win+Spacebar in Notepad.

#IfWinActive, Europa Universalis IV
{
	savepath := Format("C:\Users\bard\Documents\Paradox Interactive\Europa Universalis IV\save games\")
	
	F12::
		FormatTime, now, , yyyyMMddHHmmss
		FileCopy, %savepath%autosave.eu4, %savepath%backup\autosave_%now%.eu4
		Sleep, 100
		MsgBox "Backup to %savepath%backup\autosave_%now%.eu4 ."
		Return

	^F12::
		SendEvent, {Esc down}
		Sleep, 25
		SendEvent, {Esc up}
		Random, Delay, 150, 200
		
		FileCopy, %savepath%backup\autosave_%now%.eu4, %savepath%autosave.eu4
		Return
}


#IfWinActive, No Man's Sky
{
	srcDir := Format("C:\Users\bard\AppData\Roaming\HelloGames\NMS\st_76561198257103065")
	dstDir := Format("C:\Users\bard\AppData\Roaming\HelloGames\NMS\backup\st_76561198257103065")
	
	F12::
		FormatTime, now, , yyyyMMddHHmmss
		FileCopyDir, %srcDir%, %dstDir%_%now%
		Return
}

#IfWinActive, Mount&Blade Warband
{
	; #UseHook
	; savepath := Format("C:\Users\bard\Documents\Mount&Blade Warband Savegames\Perisno_0.99\")
	savepath := Format("C:\Users\bard\Documents\Mount&Blade Warband Savegames\Prophesy of Pendor v3.8.0\")
	
	q::
		PixelGetColor, color, 1431, 715
		;MouseGetPos, Mousex, Mousey
		;PixelGetColor, color, %Mousex%, %Mousey%
		;MsgBox %Mousex%, %Mousey%, %color%
		if(0x5092B1 = color)
		{
			Click, Left, 1136, 783
			Send 1
			Click, Left, 658, 780
			Click, Left, 925, 764
			Send 2
			MouseGetPos, Mousex, Mousey
			Click, Left, 1061, 1048
			Click, Left, 986, 1045
			Click, Left, 1830, 888
			MouseMove, %Mousex%, %Mousey%
		}
		else
			Send s
		return

	F12::
		SendEvent, {F12 down}
		Sleep, 25
		SendEvent, {F12 up}
		Sleep, 500
		FormatTime, now, , yyyyMMddHHmmss
		FileCopy, %savepath%sg00.sav, %savepath%backup\sg00_%now%.sav
		Return

	F11::
		SendEvent, {Esc down}
		Sleep, 25
		SendEvent, {Esc up}
		Random, Delay, 150, 200
		Sleep, %Delay%
		Click, Left, 554, 546
		Random, Delay, 1000, 2000
		Sleep, %Delay%
		FileDelete, %savepath%last_savegame_backup.sav
		FileDelete, %savepath%sg00.sav
		FileCopy, %savepath%backup\sg00_%now%.sav, %savepath%sg00.sav
		Click, Left, 260, 390
		Random, Delay, 100, 200
		Sleep, %Delay%
		Click, Left, 310, 200
		Random, Delay, 100, 200
		Sleep, %Delay%
		Click, Left, 1450, 1000
		Return
	
	; #UseHook off
}

#IfWinActive, Sid Meier's Civilization
{
	;reassigning the arrow keys
	;a::left
	;s::down
	;d::right
	;w::up

	XButton1::NumpadSub
	XButton2::NumpadAdd
	d::
		PixelGetColor, color, 268, 1032
		if(0xC8FFFF = color)
		{
			Send {Right}
		}
		else
			Send d
		return
	s::
		PixelGetColor, color, 1431, 715
		;MouseGetPos, Mousex, Mousey
		;PixelGetColor, color, %Mousex%, %Mousey%
		;MsgBox %Mousex%, %Mousey%, %color%
		if(0x5092B1 = color)
		{
			Click, Left, 1136, 783
			Send 1
			Click, Left, 658, 780
			Click, Left, 925, 764
			Send 2
			MouseGetPos, Mousex, Mousey
			Click, Left, 1061, 1048
			Click, Left, 986, 1045
			Click, Left, 1830, 888
			MouseMove, %Mousex%, %Mousey%
		}
		else
			Send s
		return
	Tab::
		MouseGetPos, Mousex, Mousey
		Click, Left, 1738, 862
		MouseMove, %Mousex%, %Mousey%
		Return
	^`::
		MouseGetPos, Mousex, Mousey
		Click, Left, 22, 50
		Click, Left, 22, 100
		MouseMove, %Mousex%, %Mousey%
		Return
	^1::
		MouseGetPos, Mousex, Mousey
		Click, Left, 22, 50
		Click, Left, 22, 145
		MouseMove, %Mousex%, %Mousey%
		Return
	^2::
		MouseGetPos, Mousex, Mousey
		Click, Left, 22, 50
		Click, Left, 22, 190
		MouseMove, %Mousex%, %Mousey%
		Return
	^3::
		MouseGetPos, Mousex, Mousey
		Click, Left, 22, 50
		Click, Left, 22, 235
		MouseMove, %Mousex%, %Mousey%
		Return
	^4::
		MouseGetPos, Mousex, Mousey
		Click, Left, 22, 50
		Click, Left, 22, 280
		MouseMove, %Mousex%, %Mousey%
		Return
	^5::
		MouseGetPos, Mousex, Mousey
		Click, Left, 22, 50
		Click, Left, 22, 325
		MouseMove, %Mousex%, %Mousey%
		Return
  !1::
		PixelGetColor, color, 1695, 79
		; if(0xABCDCD = color)
		if(true)
		{
			MouseGetPos, Mousex, Mousey
			Click, Left, 1700, 40
			Click, Left, 1640, 50
			MouseMove, %Mousex%, %Mousey%
		}
		else
		{
			MouseGetPos, Mousex, Mousey
			Click, Left, 1700, 40
			Click, Left, 1590, 50
			MouseMove, %Mousex%, %Mousey%
		}
		Return
  !2::
		PixelGetColor, color, 1695, 79
		; if(0xABCDCD = color)
		if(true)
		{
			MouseGetPos, Mousex, Mousey
			Click, Left, 1700, 40
			Click, Left, 1640, 75
			MouseMove, %Mousex%, %Mousey%
		}
		else
		{
			MouseGetPos, Mousex, Mousey
			Click, Left, 1700, 40
			Click, Left, 1590, 75
			MouseMove, %Mousex%, %Mousey%
		}
		Return
  !3::
		PixelGetColor, color, 1695, 79
		; if(0xABCDCD = color)
		if(true)
		{
			MouseGetPos, Mousex, Mousey
			Click, Left, 1700, 40
			Click, Left, 1640, 100
			MouseMove, %Mousex%, %Mousey%
		}
		else
		{
			MouseGetPos, Mousex, Mousey
			Click, Left, 1700, 40
			Click, Left, 1590, 100
			MouseMove, %Mousex%, %Mousey%
		}
		Return
	!`::
		MouseGetPos, Mousex, Mousey
		PixelGetColor, color, %Mousex%, %Mousey%
		MsgBox %Mousex%, %Mousey%, %color%
		Return
}

;end of script

另有一段定时按键的脚本,用到定时器

v_Enable=0
#`::
{
	v_Enable:=!v_Enable
	If(v_Enable=0)
	 SetTimer, Label0, Off
	ELSE
	 SetTimer, Label0, 60000
}
Return

Label0:
{
    Send +1
}
Return