Razer Game Booster is supposed to automatically enter boost mode when a game is launched and then return to normal mode when the game is closed. This process works fine for most games but not for Battlefield 3. To fix the first part of the issue of entering into boost mode head over to my post Capture Window Events with AutoHotkey.
This next part is where things got a bit tricky. It would’ve been nice if I could have just used my WatchWindows.ahk script to also trigger an event when the BF3 window was closed but AutoHotkey is on Punkbuster’s disallowed programs list. So if you’re running an AHK script while playing BF3 in a PunkBuster enabled server then you’ll eventually get kicked with a disallowed program error. At this point I had to find a new way to trigger an event when BF3 was closed. My first idea was to find a file that got changed only when the BF3 window was closed so I setup TheFolderSpy to monitor the following directories:
C:\ProgramData\Origin
C:\ProgramData\EA Core
C:\ProgramData\EA Logs
C:\ProgramData\Electronic Arts
C:\Users\Peter\AppData\Roaming\Origin
C:\Users\Peter\AppData\Local\Origin
C:\Users\Peter\AppData\Local\Temp
C:\Users\Peter\Documents\Battlefield 3
C:\Program Files (x86)\Origin Games
C:\Program Files (x86)\Origin
I went looking for a way to capture window events in order to trigger actions when a specific event occurred and I came across this post with an AutoHotkey script that does just that. It’s necessary to know what shell message to look for when adding in your own code. This information is given by another AHK script located here.
With the shell information collected you can now add your own code to trigger certain actions on specified window events. Two ways that I’ve used so far to match window titles is as follows:
1) If (Title = “Windows”)
[autoit title="If Statement"]
WinGetTitle, Title, ahk_id %lParam%
If (Title = “Windows”)
[/autoit]
2) IfInString, Title, Battlefield
[autoit title="IfInString Statement"]
WinGetTitle, Title, ahk_id %lParam%
IfInString, Title, Battlefield
[/autoit]
Method #1 is fine most of the time unless the window title uses abstract characters. For example the Battlefield game window uses the title “Battlefield 3™”. If you paste that exact title into the script the if statement will evaluate to false. In order to get around this issue I used IfInString. While this fixed my initial problem a new problem appeared in its place which triggered the event when I launched the Battlelog website in my browser. To get around this I added another IfInString statement within the first that looked for the proper class.
My current backup program of choice is Areca Backup which is open source and is hosted at sourceforge. I make a separate target profile for each piece of software that I’m backing up so I can backup only the necessary files. Areca handles this method without fail but because there isn’t a built in scheduling system it can be a hassle exporting each individual target backup. There’s an option to run a single export for every target in a group but I have a few targets that I don’t want to backup on a schedule in my main group.
One method of scheduling backups is to run the wizard “Generate backup strategy commands…” which is located in the right click context menu.
My current backup strategy is as follows:
One archive each 1 day, 7 times
Then one archive each 7 days, 3 times
Then one archive each 28 days, 1 time