Поиграйтесь с System.Diagnostics.ProcessStartInfo, который позволяет вам указать файл, который вы хотите открыть, а также позволяет указать аргументы.
Затем можно использовать Process.Start (ProcessStartInfo), чтобы запустить процесс. Платформа будет определять, какое приложение запускать, основываясь на файле, указанном в ProcessStartInfo.
У меня не установлен Infopath, поэтому я, к сожалению, не могу его опробовать. Но, надеюсь, это вам немного поможет.