Вы можете использовать ProcessStartInfo, чтобы указать файл для запуска (rundll32), и свойство Arguments, чтобы указать аргументы для использования. Это не массив, а строка.
startInfo.Arguments = "/ x / y / z";
Вам не нужен cmd.exe, потому что вы запускаете процесс, который будет называться rundll32, для которого не требуется cmd для его размещения.
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "rundll32.EXE";
startInfo.Arguments = "Printui.dll,PrintUIEntry /ia /K /q /m "SHARP MX-5500N PS" /h "Windows NT x86" /v 3 /f sn0hwenu.inf";
Process.Start(startInfo);
Обратите внимание, что вам может потребоваться заключить аргументы в кавычки (что, похоже, вы уже делаете). Например, если вы указываете путь c: \ Program Files ... вам нужно будет заключить его в кавычки, иначе вы получите ошибки при попытке запустить процесс
startInfo.Arguments = "\"c:\\Program Files\\...\"";
Также имейте в виду, что указание одного только rundll32.exe может не сработать. Я не уверен, что process.Start использует переменные среды PATH для разрешения файла, поэтому вам может потребоваться указать полный путь к файлу rundll32.exe