Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Giao tiếp với cmd trong lập trình C#?

  1. #1
    Ngày gia nhập
    05 2011
    Bài viết
    33

    Mặc định Giao tiếp với cmd trong lập trình C#?

    Tiêu đề không biết đặt thế nào cho đúng nên đặt tạm vậy, admin sửa hộ thì tốt quá.

    Em đang dùng FFmpeg, đây là 1 công cụ mã nguồn mở dùng để converter phim rất hay,
    Nhưng dùng nó toàn phải chạy trên dòng lệnh như này nên cũng hơi bất tiện tí.
    Code:
    ffmpeg -i input.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv final.flv
    các lệnh này toàn chạy trên cmd


    Cho em hỏi làm thế nào để project c# có thể chuyển các lệnh đấy sang cmd như em dùng lệnh (hoặc thao tác truyền trực tiếp các tham số vào FFmpeg) và lấy các dữ lệu trả về từ FFmpeg.

    Thank.

    Dự định làm cái phần mềm converter HD phục vụ nhu cầu encode của bản thân
    Có link cho ai có cùng ý tưởng

  2. #2
    Ngày gia nhập
    10 2008
    Bài viết
    258

    Đây là một hàm cho bạn tham khảo, và chắc là sẽ sử dụng nó luôn
    Visual C# Code:
    1. public void ExecuteCommandSync(object command)
    2. {
    3.      try
    4.      {
    5.          // create the ProcessStartInfo using "cmd" as the program to be run,
    6.          // and "/c " as the parameters.
    7.          // Incidentally, /c tells cmd that we want it to execute the command that follows,
    8.          // and then exit.
    9.     System.Diagnostics.ProcessStartInfo procStartInfo =
    10.         new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);
    11.  
    12.     // The following commands are needed to redirect the standard output.
    13.     // This means that it will be redirected to the Process.StandardOutput StreamReader.
    14.     procStartInfo.RedirectStandardOutput = true;
    15.     procStartInfo.UseShellExecute = false;
    16.     // Do not create the black window.
    17.     procStartInfo.CreateNoWindow = true;
    18.     // Now we create a process, assign its ProcessStartInfo and start it
    19.     System.Diagnostics.Process proc = new System.Diagnostics.Process();
    20.     proc.StartInfo = procStartInfo;
    21.     proc.Start();
    22.     // Get the output into a string
    23.     string result = proc.StandardOutput.ReadToEnd();
    24.     // Display the command output.
    25.     Console.WriteLine(result);
    26.       }
    27.       catch (Exception objException)
    28.       {
    29.       // Log the exception
    30.       }
    31. }
    Anh yêu em hí hí

  3. #3
    Ngày gia nhập
    05 2011
    Bài viết
    33

    Có cách nào ngắn hơn ko ah ??

  4. #4
    Ngày gia nhập
    11 2008
    Bài viết
    218

    - Cách ngắn hơn thì có thể là như thế này:
    Visual C# Code:
    1.             string commandToExecute = @"md c:\Test";// @"c:\windows\system32\calc.exe";
    2.             System.Diagnostics.Process.Start(@"cmd", @"/c " + commandToExecute);
    - Còn cách đầy đủ hơn thì bạn tham khảo ở đây: digitalcoding.com/Code-Snippets/C-Sharp/C-Code-Snippet-Execute-Shell-Commands-from-Net.html

Các đề tài tương tự

  1. Ý kiến Chỉ một từ đơn giản trong tiếng Anh: Ban
    Gửi bởi Wazi Armstrong trong diễn đàn Ý kiến, đề xuất và khiếu nại
    Trả lời: 10
    Bài viết cuối: 22-04-2012, 09:22 PM
  2. Giao tiếp với AVR qua cổng USB trong C#?
    Gửi bởi caiquatnan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 16-04-2011, 07:19 AM
  3. giao tiếp cổng com và lấy ngày giờ trong lập trình C#?
    Gửi bởi pqtung68 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 01-04-2011, 08:04 AM
  4. Algorithm Giao tiếp với HĐH trong lập trình C#?
    Gửi bởi Nerjrofy trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 21-03-2011, 08:16 AM
  5. Code chương trình giao tiếp giứa 2 tiến trình trong Windows
    Gửi bởi cutithongtin trong diễn đàn Thắc mắc chung
    Trả lời: 14
    Bài viết cuối: 19-04-2010, 08:51 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn