ShellExecute(handle,
NULL, "c:\\windows\\onemore.bat", NULL, NULL, SW_HIDE);
Why did you keep second parameter to NULL?
For Windows 2000 and later systems, the default verb is used if available. If not, the "open" verb is used. If neither verb is available, the system uses first verb listed in the registry i.e. 'edit'
- Source from MSDN