The Shell() function is a remnant of VB6; it is better practice to use Process.Start to start a program; if the file you are trying to open is not executable (ie. if it is a help manual or something else), then unfortunately you have to muddy the water by calling the Win32 API: ShellExecute still remains the only way to do this (for now): http://social.msdn.microsoft.com/forums/en-US/winforms/thread/4f091697-f2f8-46f6-ab5c-f2c7d32ffabc/