2013-03-26 79 views
0

我想用一個簡單的腳本在現有的快速保存文件被遊戲覆蓋之前進行備份。從本質上講,我要的是一個新的保存,每次我打了F5文件:運行天際時不啓動的AutoHotkey腳本

F5:: 
OldQuickSave := "c:\Users\Me\Documents\My Games\Skyrim\Saves\quicksave.ess" 
FileGetTime, qstime, %OldQuickSave% 
BackupFileName := "c:\Users\Me\Documents\My Games\Skyrim\Saves\OldQuicksave" . qstime . ".ess" 
FileCopy, %OldQuickSave%, %BackupFileName% 
SendPlay {F5} 
return 

它工作以外的遊戲,但在遊戲運行的命令沒有達到AutoHotkey的。遊戲應該保存,但腳本不會啓動。就好像我從未按下鑰匙。我的猜測是,Skyrim使用DirectInput讀取鍵盤,它消耗事件並且不會進一步發送。有什麼解決方法嗎?或者任何其他解決方案爲每個快速保存創建一個新的保存遊戲文件?

+0

你試過GetKeyState嗎? – 2013-03-26 22:42:18

+0

@Armin大提示!我沒有最終使用GetKeyState,而是結合了KeyWait,Sleep和GoTo。它正是我想要的,謝謝! – Serban 2013-03-26 23:21:59

回答

0

我發現使用下面的腳本解決方法:

Label: 
KeyWait, F5, D 
OldQuickSave := "c:\Users\Me\Documents\My Games\Skyrim\Saves\quicksave.ess" 
FileGetTime, qstime, %OldQuickSave% 
BackupFileName := "c:\Users\Me\Documents\My Games\Skyrim\Saves\OldQuicksave" . qstime . ".ess" 
FileCopy, %OldQuickSave%, %BackupFileName% 
Sleep, 5000 
Goto, Label 

的睡眠,以防止有案中多次執行被按下的較長時間的關鍵。 我還是很好奇,但第一次出錯了。