Operating System: Windows Vista x64 (Note: might work with other versions of this os.)
I've successfully hacked the x64 Perfection 2400 installer to produce a fully functional Perfection 1200 driver that installs under the correct name and the correct place in the registry, and supports the scanner's Start Button.
On the Epson EU website there's a list of scanners for which Epson is providing x64 drivers. Choose one that sounds similar to your scanner, and download the x64 driver for that scanner from the Epson website.
Unzip the download. Some of the driver files are grouped by Locale ID under the LIB folder. Check out the .inf and .sif files for your locale. The number in the filename is the Epson Scanner (ES) numbr, and you can find out which scanner an ES number represents by looking in the [Strings] section of a .inf file. Choose the ES number that represents the most similar scanner to yours. The files with this number are the ones that you're going to modify.
The most important thing to do is change the USB Product ID (PID) in the info files to the PID of your scanner. (You can find your scanner's PID by looking in the .inf file from its 32-bit Windows XP driver.) The PID must be replaced throughout each .inf and .sif file bearing the appropriate ES number. For example, I replaced the Perfection 2400's PID of 011B with the Perfection 1200's PID of 0104 in every .inf and .sif file bearing the Perfection 2400's ES number (which is 27).
You should now have an installer that works for your scanner but recognizes it as a different scanner. If you want your scanner to show up under the correct name, then you've got more work to do.
One of the cabinet (.cab) files in the root folder is specific to your scanner. You should be able to tell which one from its name. You need to search for and replace the name of the scanner, not only in the .inf and .sif files, but also in the .hrd, .idx and .icm files inside your scanner's cabinet file.
Changing these files is tricky. First of all, you need to extract them from the cabinet file. Unlike the .inf and .sif files, these files are binaries, so care must be taken in editing them. (I'd be wary of changing the length of the scanner's name.) Some of the embedded text strings use single-byte character encoding, but some use double-byte character encoding, which makes it difficult to spot every instance of the name you're looking to replace.
After you've edited the files, you must put them back into a cabinet file of the same name. I did this using the MakeCAB tool from Microsoft's Cabinet SDK. In order to do this I had to create a directive (.ddf) file for MakeCAB as described in the MakeCAB User's Guide:
.Set InfFileName=Per1200.inf;delete this file
.SET RptFileName=Per1200.rpt;delete this file
; Cabinet contents, in order:
If you did all that correctly, you should now have an x64 driver that installs your scanner under the correct name. I actually wen further than that, but it isn't necessary to do so:
I changed the ES number from 27 (Perfection 2400) to 07 (Perfection 1200) in the names of the .inf, .sif, .hrd and .idx files, and throughout the .inf, .sif, .idx, .icm and Setup.ini files. This ensures that the scanner is installed in the proper location in the registry.
I changed the names of the .icm, .ds and .cab files to reflect the name of my scanner, e.g. from Per2400.ds to Per1200.ds. Corresponding changes must be made inside the .hrd, .inf and .sif files.
I deleted the .inf, .sif and .cab files for other models of scanner, and removed their ES numbers from the [Support] section of Setup.ini.
I edited the .inf files to match the capabilities of my scanner. (For example, I removed references to buttons that my scanner doesn't possess, and changed the resolution from 2400 to 1200.)
I wouldn't have been able to do this if not for the fact that Epson's code is actually quite well written.
End of quote.
Note: The Start Button on the Epson Perfection 1200U did not work with the fixed driver. The actual fix required changing the ES07.inf file. The line which details the ScanApp to be used was changed from "EPSON Smart Panel" to "EPSON Scan" minus the "". Otherwise, the driver was usable, with minor differences when comparing the original WinXP program with the new 64-bit program.