示例#1
0
 private void Process_ErrorDataReceived(object sender, DataReceivedEventArgs e)
 {
     if (e.Data != null)
     {
         Status = PXTaskStatus.Error;
     }
 }
示例#2
0
        void PrintDoc()
        {
            Process process = new Process();

            process.StartInfo.UseShellExecute = false;
            process.StartInfo.CreateNoWindow  = true;
            //process.StartInfo.StandardOutputEncoding = Encoding.UTF8;
            //process.StartInfo.StandardErrorEncoding = Encoding.UTF8;
            //process.StartInfo.StandardInputEncoding = Encoding.UTF8;

            process.StartInfo.RedirectStandardInput  = true;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.RedirectStandardError  = true;
            //process.StartInfo.FileName = GetPlatformCmd("cmd");
            process.StartInfo.FileName  = "you-get";
            process.StartInfo.Arguments =
                @$ "--output-dir {AddQuotesIfRequired(context.WorkingDictory.FullName)} --output-filename test {context.Url}";
            //process.StartInfo.WorkingDirectory = "";

            process.OutputDataReceived += Process_OutputDataReceived;
            process.ErrorDataReceived  += Process_ErrorDataReceived;

            try
            {
                process.Start();

                process.BeginOutputReadLine();
                process.BeginErrorReadLine();

                string temp = @"--output-dir C:\ --output-filename test ";
                string name = @" https://www.bilibili.com/video/av28038890";
                process.StandardInput.AutoFlush = true;
                //process.StandardInput.WriteLine(@"sssss");
                //process.StandardInput.WriteLine(GetPlatformCmd("exit"));

                int milliseconds = context.Timeout.HasValue
                    ? (int)context.Timeout.Value.TotalMilliseconds
                    : 5000000;

                process.WaitForExit(milliseconds);
                process.Close();

                if (Status != PXTaskStatus.Error)
                {
                    Status = PXTaskStatus.Finished;
                }
            }
            catch
            {
                Status = PXTaskStatus.Error;
            }
        }
示例#3
0
 public void Run()
 {
     Status = PXTaskStatus.Running;
     PrintDoc();
 }