A simple utility to organise and facilitate the customising of the xplorer2 binary resources. Compatible with x64 Pro, x86 Pro and Lite versions of xplorer2 (including concurrent installations), Windows XP / Vista / 7. Foreign language DLL's are also fully customisable, though ResHacker (which this utility relies upon) does not itself edit Unicode characters, so languages which require non-Western fonts (Japanese, Greek, etc) will need to use a Resource Editor which caters for them). No animals were harmed during the writing of this utility, though a rather large dog did decide to fall asleep at my feet for extended periods in a typically canine expression of warmth and indifference. He is not, apparently, a modder.
Download Link: x2ResUpdater (Updated: 06-May-2016, Version 126.96.36.199)
(RAR includes 32 and 64-bit EXE's, source code, and working examples of modified resources)
Ancillary Requirement: ResHacker
So what is it, and why would you want it?
For those who don't like my informal (and long-winded) writing style, just lie back and think of England, look at the pretty pictures and wonder at the majesty of the stars at night as you gaze upon her feminine shape... oh, wait, that's another tutorial . Sorry. For this one, most of you will just ask "What's the point?" Well, I can't answer that. Resource hacking is done for many reasons, but in this instance it's about correcting what I (and others) perceive as shortcomings in the x2 interface (more specifically, the shape/size/layout of the many small windows that open up as you use different functions. (Curiously Nikos himself considers me a "feteshista" - his word, not mine - for concerning myself with such things. I'm just walking along the road one day trying to step on frogs - as one does in the rain - and didn't he just jump out of the sky screaming and pointing in his flowing white robes raving incoherently about being hounded by "Resource Feteshistas". I just shrugged and took a last drag off my damp and dwindling cigarette and blew smoke rings at him. He was nonplussed, as they say. I went back to hunting frogs and forgot about the incident. If I took him seriously, I'd have nightmares, so I would. Life is hard enough. )
I should preface this by pointing out what it's not: This is not a tutorial on actual Resource Hacking - that's just something you pick up as you go, and either decide is rather interesting and useful, or you yourself start raving incoherently at computery-type stuff. It's a common affliction. At least, let it be said that experimenting with these custom resources will not harm your x2 installation in any way, and all changes can be immediately removed by simply clicking the Restore button in x2ResUpdater, or by closing x2 and deleting the x2t_English_ResMod.dll file. This utility does not in any way touch the original xplorer2 EXE file you know and love. In fact, it was specifically written so people do not attempt to do this themselves.
This project was an off-shoot from a series of posts (found here) which are about those of us who like customising the programme resources of xplorer2 for our own devious purposes. As of x2 release 1.8.1 Nikos made this rather difficult to do (directly) as he tied it to his anti-piracy measures, which is fair enough - and before then it was only the sort of thing spoken about in dark alleys with secret handshakes and passwords and wife-swapping and all that sort of nefarious carry-on. Now though, that we're out of the closet and all "officially sanctioned" (if developmentally misunderstood) by Nikos, we can still play with these things, just in a slightly different way - via the x2 translation modules (DLL's). The main problem for English speakers is that as the English resources are actually built into the x2 binary executable, no English translation DLL exists (as they do for other languages) and we have to resort to hocus-pocus to get one.
I decided to simplify this by writing a utility which, with the addition of the free and well-known ResHacker utility (which most of us have already anyway) would facilitate the process.
Part of what I'm proposing is a slightly different method of resource hacking for people to use. Normally you just open an EXE in ResHacker and edit stuff to your heart's content, then save that EXE and you see your results instantly. As x2 gets multiple upgrades/patches/releases per year, this can get a little annoying as you have to modify the new programme each time it's released. If you only change an icon or two, this is not a big deal, but imagine what happens when you change many things like modal windows, re-order in-programme menus themselves, and change the fonts used throughout the entire application? No wonder I spend my time hunting frogs and being accosted by white-robed coding deities.
So, the change? Quite simple, really - instead of modifying the DLL directly, use x2ResUpdater (or ResHacker itself) to extract the individual resources you want to change (and only those) and save them as .RES files. They will still be easily edited with ResHacker but this utility will integrate them individually into x2 when you need it done. Why do this instead of just keeping a single DLL? Well, from time to time Nikos changes elements of the resources, and if you just keep applying the same DLL each time you'll either end up over-writing new application additions or you'll find some things just won't work right (encountering the same problems people have when the translation modules aren't updated properly for each x2 release). An extra added bonus is that you can save the .RES files with any name you want, whereas in ResHacker all the resources have cryptic numbers which are not easy to remember when you want to go back a few months later to change something yourself. It's a lot easier to locate "Bigger_Window_Thingie.RES" rather than remembering and searching for DIALOG 231 each time.
To save/create/extract individual resource files, you can either use the built in "Auto-Extract" tab in x2ResUpdater (see screenshot above), or you can use the manual method (from within ResHacker itself) click on the name of the DLL where it says "Resource Base" in x2ResUpdater. This will open a facsimile (a copy) of that DLL/EXE in ResHacker where you then select the individual resource you want (specifically its language identifier) and then select Action from the main menu, and use "Save as .RES file". Pretty simple. Like I said, I suggest you extract the ones you want, then edit/save the .RES files themselves, not the whole DLL. As ResHacker is only working on a facsimile of the original file, even if you accidentally edit and save something by mistake you cannot harm the original.
Of course, for those of you who haven't fallen asleep yet, or those who rather wished this tutorial was about "that feminine gazing" thing, you're wondering to yourself, "Self, I speak English and like to use x2 menus in English, but where do I get the English DLL resources from so I can scrape out the goo inside? And Self, while I'm at it, why didn't this long-winded idiot who wrote the tutorial just give me one in the download in the first place?"
Two reasons: 1) Technically speaking if I were to include an English DLL in the download, that would be redistributing Nikos' intellectual property which isn't polite - even though it's all open and available, Nikos would probably prefer people only got such things directly from his site. 2) The other reason is that each time x2 gets an update, you have to have a new DLL based on that version of the programme, and Nikos doesn't supply these in English, so you have to create one each time, and you might as well learn how to do that now.
Thankfully, that's what x2ResUpdater does! (Big surprise, I know, but I thought I might mention it anyway.)
To be honest, this GUI version of the utility is fairly self-explanatory if you are already familiar with resource hacking (most buttons/settings have tooltips to clarify their purpose). In essence, you collect the resources you have extracted/modified into a folder and then check the ones you want included in your DLL from the displayed list, and click "Build/Re-Build" to automatically create and insert the new DLL into x2's folder, though it may also optionally be placed elsewhere, if you wish. (x2ResUpdater makes a fair stab at trying to locate your x2 installation even if it's non-standard, but if it can't find it (or ResHacker) use the Settings & Folders tab to manually select the appropriate folders. By default, the utility will look in its own folder first for resources, but you may store them anywhere you wish. All settings/folders are saved in an .ini which will be automatically created if it doesn't already exist.
When replacing the DLL, if x2 is running it will automatically be closed and restarted in the background (this is necessary as any resource DLL in x2's folder is automatically <Locked> when x2 is running, and therefore cannot be replaced "on the fly". There is an option to disable the auto-restart in the settings for those who prefer the manual approach.
For managing the resources themselves, as you can see in the picture (far far above) right-clicking on any resource file will provide a context menu which allows for opening it in ResHacker for editing, changing its filename, deleting it (to the recycling bin), highlighting any potential conflicts (if you have two or more versions of the same RES in the folder), and so on.
So, about those examples? If you installed them already, have a look:
Double-click one of your User Commands, and see the difference in the Properties Dialog: (instead of being scrunched-up and hard to read over multiple lines, it's spread out for simplicity)
Check out the Actions -> Change Attributes window in x2...
Ok, enough of that, you get the idea - you can change anything you like - if you don't like Nikos' sense of humour in error messages ("CPU tried its best but this command is ineffable") you can change that to "The Wife's Damn Dog ate my homework again" if you like (StringTable 627, for those interested).
Other modal windows and (resource numbers) you might find useful (also see the Auto-Extract Tab):
- D 107 Custom Column Selection (Alt-K window, etc)
D 108 Rule Definitions sub-window (via Ctrl-F, or Alt-G)
D 112 Find Files or Folders *** (Main Ctrl-F window)
D 219 Part of the Find dialog *** (Main Ctrl-F window)
D 113 "Organize" windows (affects multiple) - Many items from the Customize menu, User Commands, Folder Groups, Bookmarks, etc.
D 114 Definition windows from "Organize" selections (affects multiple)
D 117 Colour Coding window
D 239 Mass Rename
D 289 Customise Keyboard
*** Be careful when modifying the Ctrl-F window (for font sizes, etc) as it is actually a window composed of a few other resources combined, so if you change one thing you might find it conflicts with something somewhere else. You can still do it, of course, just mind that a little extra work is involved.
Ok, that's all. I hope somebody, somewhere will find all this useful and actually understand why I chose to go through this much trouble for something so silly. It is a bit of a niche interest, but fun to play with nonetheless, and hopefully people will understand the philosophy of keeping DLL's and their respective .RES contents separate, and thus use my humble utility.
Thanks for reading if you made it this far and didn't start throwing popcorn at your LCD in protest. I hope this makes some kind of sense to people, and encourages them at least be curious and try their hand at it. Like I said before, all modifications can be easily removed and won't accidentally "bork" an x2 installation, so it's safe for neophytes to be at play in the fields of the Lord, as all neophytes should be - before the realities of life inevitably drive them to becoming hopeless manic-depressive alcoholics like the rest of us.