0

Hi Guys I was wondering if anyone could assist me by telling me / correcting my code as to where I am going wrong.

I'm trying to simply excute flvmeta.exe, and pass the parameters:

"flvmeta input.flv output.flv"

when I do this manually it works fine, however when I build and try and run this .exe it does not run the: "flvmeta input.flv output.flv" I know that it is finding the flvmeta.exe, however for some reason there is an issue with my startInfo.Arguments. Could someone please help me out, I'm loosing my hair.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        LaunchCommandLineApp();
    }

    /// <summary>
    /// Launch the legacy application with some options set.
    /// </summary>
    static void LaunchCommandLineApp()
    {
        // For the example
        const string inputFLV = "input.flv";
        const string outputFLV = "output.flv";

        // Use ProcessStartInfo class
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.CreateNoWindow = false;
        startInfo.UseShellExecute = false;
        startInfo.FileName = "flvmeta.exe";
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;
        startInfo.Arguments = "flvmeta " + inputFLV + " " + outputFLV + "";

        try
        {
            // Start the process with the info we specified.
            // Call WaitForExit and then the using statement will close.
            using (Process exeProcess = Process.Start(startInfo))
            {
                Console.Write(startInfo.Arguments);
                exeProcess.WaitForExit();
            }
        }
        catch
        {
            // Log error.
        }
    }
}

Edited by help-me-please: n/a

3
Contributors
2
Replies
4
Views
8 Years
Discussion Span
Last Post by mikiurban
0

Hi Guys I was wondering if anyone could assist me by telling me / correcting my code as to where I am going wrong.

I'm trying to simply excute flvmeta.exe, and pass the parameters:

"flvmeta input.flv output.flv"

when I do this manually it works fine, however when I build and try and run this .exe it does not run the: "flvmeta input.flv output.flv" I know that it is finding the flvmeta.exe, however for some reason there is an issue with my startInfo.Arguments. Could someone please help me out, I'm loosing my hair.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        LaunchCommandLineApp();
    }

    /// <summary>
    /// Launch the legacy application with some options set.
    /// </summary>
    static void LaunchCommandLineApp()
    {
        // For the example
        const string inputFLV = "input.flv";
        const string outputFLV = "output.flv";

        // Use ProcessStartInfo class
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.CreateNoWindow = false;
        startInfo.UseShellExecute = false;
        startInfo.FileName = "flvmeta.exe";
        startInfo.WindowStyle = ProcessWindowStyle.Hidden;
        startInfo.Arguments = "flvmeta " + inputFLV + " " + outputFLV + "";

        try
        {
            // Start the process with the info we specified.
            // Call WaitForExit and then the using statement will close.
            using (Process exeProcess = Process.Start(startInfo))
            {
                Console.Write(startInfo.Arguments);
                exeProcess.WaitForExit();
            }
        }
        catch
        {
            // Log error.
        }
    }
}

You don't need to pass in the name of your exe into the ProcessStartInfo.Arguments property. Try initializing the ProcessStartInfo with the exe: ProcessStartInfo startInfo = new ProcessStartInfo("flvmeta.exe"); Also see: Process.Start & ProcessStartInfo.Arguments...

0

As a side note, the process you are launching is probably in the same current working directory as the program itself. So if your program is in C:\Program Files\MyCoolApp, when you execute "flvmeta input.flv output.flv" it might think those files are in the same folder. You may need to set the "WorkingDirectory" property of ProcessStartInfo first.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.