I too was having difficulty setting up CNC Generals and Zero Hour. It took me several try's to figure it out. I see in previous posts a few different methods were used. My issue was my screen resolution. I copied the .ini file script and successfully saved the file as Options.ini and left the resolution in the script as 1024x768. I did not set anything as to run as Administrator or to run in compatibility mode. The main issue I had was my new laptop resolution is set to 1600x900, CNC Generals and Zero Hour only work on 1024x768. Once I changed my desktop resolution on the initial startup of the games using the ini file in both data folders the game launched. after running both games for the first time I was able to change my desktop resolution back to 1600x900. CNC automatically adjusted the resolution after that. Below is the script. Just copy and paste it into note pad and save it. Select all files for file format and type options.ini for the file name. Then copy and paste the file into the Generals and Zero Hour data folder located in the Documents folder formerly My Documents.
AntiAliasing = 2
BuildingOcclusion = yes
CampaignDifficulty = 0
DynamicLOD = no
ExtraAnimations = yes
GameSpyIPAddress = 0.0.0.0
Gamma = 50
IPAddress = 0.0.0.0
IdealStaticGameLOD = High
LanguageFilter = true
MaxParticleCount = 5000
MusicVolume = 33
Resolution = 1024 768
Retaliation = yes
SFX3DVolume = 79
SFXVolume = 71
ScrollFactor = 65
SendDelay = no
ShowSof****erEdge = yes
ShowTrees = yes
StaticGameLOD = High
TextureReduction = 0
UseAlternateMouse = no
UseCloudMap = yes
UseDoubleClickAttackMove = no
UseLightMap = yes
UseShadowDecals = yes
UseShadowVolumes = yes
VoiceVolume = 47