Как запустить doxygen из С# и передать конфигурацию через стандартный ввод?

Doxygen предоставляет способ передать содержимое файла .doxy через стандартный ввод вместо передачи имени файла, но я не знаю, как это сделать с С#.

Для простоты предположим, что содержимое моего файла конфигурации doxygen просто хранится в string[] lines, поэтому я хочу запустить doxygen.exe и передать это содержимое.


person Mr. Boy    schedule 09.01.2013    source источник
comment
Возможный дубликат Как писать в стандартный ввод другого приложения?   -  person Robert Harvey    schedule 09.01.2013
comment
Я думаю, что мой вопрос охватывает больше проблем, чем этот вопрос. Я полагаю, что может быть специфичная для doxygen часть того, как на самом деле запускать doxygen.exe, чтобы ожидать ввода от стандартного ввода с использованием C #.   -  person Mr. Boy    schedule 09.01.2013
comment
Это, несомненно, будет параметр командной строки со знаком минус (-), который вам нужно будет указать при запуске Doxygen. См. star.bnl.gov/public/comp/sofi/doxygen. /starting.html. См. также Запуск приложения (.EXE) из C#?   -  person Robert Harvey    schedule 10.01.2013


Ответы (1)


Я получил эту работу сам по ссылкам, упомянутым в комментариях, что-то вроде строк:

// Prepare the process to run
    ProcessStartInfo start = new ProcessStartInfo();
    // Enter in the command line arguments, everything you would enter after the executable name itself
    start.Arguments = " -";
    // Enter the executable to run, including the complete path
    start.FileName = "doxygen.exe";
    // Do you want to show a console window?
    start.WindowStyle = ProcessWindowStyle.Normal;
    start.CreateNoWindow = false;
    start.RedirectStandardInput = true;
    start.UseShellExecute = false;

    // Run the external process & wait for it to finish
    using (Process proc = Process.Start(start))
    {
        //doxygenProperties is just a dictionary
        foreach (string key in doxygenProperties.Keys)
            proc.StandardInput.WriteLine(key+" = "+doxygenProperties[key]);
        proc.StandardInput.Close();
        proc.WaitForExit();

        // Retrieve the app's exit code
        int exitCode = proc.ExitCode;
    }
person Mr. Boy    schedule 11.01.2013