News: My Latest Program

Monday, October 03, 2011

I've continued work on the project I mentioned in my last update, and have ready now a Beta version of it. I'm calling it "Profile Manager" for now, until I can come up with a better name. I need to make an original icon for it as well. You can can even just consider this a prototype of a later project I guess, though it is fully useable as is.

It's a very simple program. But one that at least I myself will find very useful. It's a System Tray app that once clicked will pop up a menu of preset profiles, that once clicked themselves will run a program/game after preforming a few simple tasks. Tasks are generally copying and backing up copies of files. It's "intended" purpose is to copy and backup mostly text files containing things like game login info, game settings, server lists, etc. The "Profiles" you select using this are stored in a ini file, and contain paths, labels, and instructions for the files you want to be managed.

I'll supply an example using World of Warcraft.

[Soandso]
Group=World of Warcraft
ProgramPath=C:\Program Files\World of Warcraft\
Program=WoW.exe
File1=C:\Program Files\World of Warcraft\WTF\Config.wtf
File2=C:\Program Files\World of Warcraft\Data\enUS\realmlist.wtf

The first part, the ini section name, is also the text that will appear in the menu for that profile.

The "Group" key is a name used for grouping several profiles together under one sub menu.

The "ProgramPath" key is the path to the file you want to run.

The "Program" key is the program you want to run in the given directory.

The "File#" keys are the files you want backed up and copied prior to running the program. There can be any number of these lines, but the # part must be a increasing number for each.

Simple right?

Now I will explain what it does behind the scenes, and explain how it manages the files pointed to by "File#=". When a profile is selected, first this program checks what profile was run last, and backs up the files listed for that profile. Then this program checks if the files pointed to by "File#=" exist under backup copy names. Using the example above "Config.Soandso.wtf" would be a file it would look for. These are stored in the same directory as the source file. Then this program copies the backup files for the profile selected, under the default name, overwriting the previous files that were just backed up if needed. Once done with that, the target program will be run.

With my WoW example, what the benefit of this is, is having different game accounts set with different graphics/sound/etc settings (Config.wtf), or in the case of the realmlist.wtf you can easily play on a emu server out of the same install as your legit accounts. I particularly like not having to type in the account names every time I switch accounts as well, as blizzard account name stuff is also stored in Config.wtf.

For my personal use, I have 2 retail WoW accounts, 2 AstralWoW emu accounts, and like 8 or 9 ProjectEQ accounts that I have just begone setting up with this. There's really no limit to what I can setup with this, and I look forward to even just organizing files and games from my desktop and quicklaunch bars, into this simple right click menu.

Additionally I've added a few extra features. Command line parameters can be supplied with the profiles using "CommandLine=". There isn't much it can do yet other then deleting directories, but you can use "PreExecutionInsctruction#=" with "RemoveDir,C:\ExampleDir\" to delete directories. I'll hopefully add more options for that later.

Also there are options to group up Profiles into sub menus, or just one giant main menu. And use the icon of the last run program as the icon for this program in the systray. Both settings can be changed in the Settings.ini. Also a quick use option, to run the last used program, exists on the main menu. This option is quicker to access then looking through what could be big menus and sub menus, and quicker for reusing the same profile as no files are copied around. It just runs the exe right away. Instructions are still carried out though.

So. Setup is a bit crude right now, having to edit an ini and all. I may make some sort of GUI for setting up profiles and changing options, later. But for now, this should be fairly simple for most people to use.

This project will be open to fan feedback posted in the comments, as for now it's been designed for my personal needs, all of which seem to have been fulfilled. I hope people find this as useful as I do, and hope to see comments and blog traffic reflecting as much.

I also hope anyone using this will share profile setups for different games and programs they find this useful for. At the moment, I only have/need to setup WoW and PEQ profiles. Though my PEQ profiles could probably use some more work. The only difference between my WoW personal use profile and the example used above is that I use this line as well:

PreExecutionInsctruction1=RemoveDir,C:\Program Files\World of Warcraft\Cache\WDB\

Download:

Removed for now.

EDIT:

Multi boxing from the same install with this will likely cause errors with most games and programs, and lead to settings files getting overwritten. To help prevent that I added a workaround, as its the best I can do for this program with out making it invasive.

In the Settings.ini, you can now supply an option for each profile to lock those profiles. What this means is, after being locked, that profile wont be backed up anymore at all, so there will never be any chance of losing that profile. The profile will still be copied from the backup over the source name file of course, so it can still be used, but that's it. Needless to say, but only lock your profiles if they are managing settings files, and you have already set up those settings files the way you will want them permanently. If you ever want to change those settings, you should do it while single boxing and after having unlocked the profile. Generally with most games, changing the settings then logging out and closing the window completely will force an update to settings files. Just remember to lock it again once done.

To lock it enter this ini key for each profile, but in the Settings.ini, NOT the Profiles.ini.

[Soandso]
LockProfile=1

=1 enables the lock.
=0 or the key not being there at all will keep it disabled.

2 comments:

DarkAkuma said...

Heads up. For multiboxing out of the same directory, there will be issues with this. Using 2 windows as an example. After running the 2nd window, the files copied over from the first windows profile, will be overwritten. They will be backed up still, but right then and there. From there, with most programs, settings get saved when a window is about to close, or even when their chosen. Choosing settings or closing either window will basically save the settings under the second profile. Depending on which window is closed first, either profile1's settings will be ignored, or profile2's settings will become overwritten with profile1's.

I will look into methods of overcoming this limitation, but there are few. Fewer considering I want to keep this program non-invasive to the programs it manages.

DarkAkuma said...

Scratch what I mentioned in my last comment. I have since updated the program, and my post with a workaround for the issue.

Post a Comment