Windows窗体应用程序与控制台应用程序

本文关键字:应用程序 控制台 Windows 窗体 | 更新日期: 2023-09-27 17:51:08

我有一个控制台应用程序,在启动时请求SourcePath ..当我输入源路径时,它要求DestinationPath…当我输入DestinationPath时,它开始执行

我的问题是通过一个windows应用程序提供这些路径,这意味着我需要创建一个窗口表单应用程序,它将在一定的时间间隔后自动向控制台应用程序提供这些参数

能否实现……如果是,请帮忙…非常紧急……

哦. .我已经尝试了很多代码,我不能粘贴听到所有,但一些我用来启动应用程序是…

        ProcessStartInfo psi = new ProcessStartInfo();
        psi.FileName = @"C:'Program Files'Wondershare'PPT2Flash SDK'ppt2flash.exe";
        psi.UseShellExecute = false;
        psi.RedirectStandardError = true;
        psi.RedirectStandardInput = true;
        psi.CreateNoWindow = false;
            psi.Arguments = input + ";" + output;
        Process p = Process.Start(psi);

        Process process = new Process
        {
            StartInfo = new ProcessStartInfo
            {
                CreateNoWindow = true,
                FileName = @"C:'Program Files'Wondershare'PPT2Flash SDK'ppt2flash.exe",
                RedirectStandardError = true,
                RedirectStandardOutput = true,
                UseShellExecute = false,
            }
        };
        if (process.Start())
        {
            Redirect(process.StandardError, text);
            Redirect(process.StandardOutput, text);
            MessageBox.Show(text);
        }
    private void Redirect(StreamReader input, string output)
    {
        new Thread(a =>{var buffer = new char[1];
            while (input.Read(buffer, 0, 1) > 0)
            {
                output += new string(buffer);
            };
        }).Start();
    }

但似乎什么都没起作用

Windows窗体应用程序与控制台应用程序

你可以像这样给ProcessStartInfo添加参数:

 ProcessStartInfo psi = new ProcessStartInfo(@"C:'MyConsoleApp.exe",
     @"C:'MyLocationAsFirstParamter C:'MyOtherLocationAsSecondParameter");
 Process p = Process.Start(psi);

这将用2个参数启动控制台应用程序。现在在控制台应用程序中有

 static void Main(string[] args)

字符串数组args是包含参数的,现在你所要做的就是在应用程序启动时获取它们。

if (args == null || args.Length < 2)
{
    //the arguments are not passed correctly, or not at all
}
else
{
    try
    {
        yourFirstVariable = args[0];
        yourSecondVariable = args[1];
    }
    catch(Exception e)
    {
        Console.WriteLine("Something went wrong with setting the variables.")
        Console.WriteLine(e.Message);
    }
}

这段代码可能是你需要的,也可能不是你需要的,但至少会让你了解如何完成你想要的。