As a quick update to getting this working on Vista/Windows 7 you have to manually create the 'options.ini' file within your Generals Zero Hour directory within you 'Documents' folder.
Within the notepad file you have created copy the following text:
AntiAliasing = 3
DrawScrollAnchor =
GameSpyIPAddress = 0.0.0.0
Gamma = 50
IPAddress = 0.0.0.0
IdealStaticGameLOD = High
LanguageFilter = false
MoveScrollAnchor =
MusicVolume = 55
Resolution = 1280 960
Retaliation = yes
SFX3DVolume = 79
SFXVolume = 71
ScrollFactor = 50
SendDelay = no
StaticGameLOD = High
UseAlternateMouse = no
UseDoubleClickAttackMove = no
VoiceVolume = 70
(you can change the resolution here or in game, up to you

).
Now one thing you have to make sure you do, is untick in the folder options tab 'hide extensions for known file types'.
If you dont do this then the file you create will be named options.ini.
txt/B], lol
Once you have removed the '.txt' from the filename you are good to go
. I have just loaded it up and am over the moon that it worked.
Strangely, Generals worked first time, just needed the latest patch, but Zero Hour needed a bit more work