Вы можете посмотреть на MainModule
свойство Process, возвращаемое из Process.Start :
Process p = Process.Start(@"D:\\test.txt");
string executableStarted = p.MainModule.FileName; // full path to notepad.exe
Однако вы должны помнить, что возвращаемое значение из Proces.Start можетбыть нулевым - в соответствии с MSDN возвращаемое значение:
Новый компонент процесса, связанный с ресурсом процесса, или ноль, если ресурс процесса не запущен (например, если существующий процессиспользуется повторно).
Обновление
Чтобы узнать исполняемый файл перед запуском процесса , вам нужно заглянуть в раздел HKEY_CLASSES_ROOT в реестре.Это будет код перехода от имени файла к команде, которую оболочка выполнит при открытии файла:
string extension = Path.GetExtension(path);
var regClasses = Microsoft.Win32.Registry.ClassesRoot;
var extensionKey = regClasses.OpenSubKey(extension);
var typeKey = extensionKey.GetValue(String.Empty);
var cmdKey = regClasses.OpenSubKey(typeKey + @"\shell\open\command");
string command = cmdKey.GetValue(null) as string;