C#调用cmd并使用IDM下载文件

时间:2024-02-24 17:45:07

前言:

  IDM是国外的一款收费下载工具,网上可以找到绿色版,比迅雷下载速度要快一点,并且支持文件重命名,迅雷目前没有找到文件重命名的方法。QQ旋风也支持文件重命名,但是QQ旋风跑一段时间会崩溃,并且有的文件下载不下来,必须手动点击下载,等等问题目前无法解决。

cmd命令执行方法:

     public static void RunCmd(string cmd)
        {
            string CmdPath = @"C:\Windows\System32\cmd.exe";
            cmd = cmd.Trim().TrimEnd(\'&\') + "&exit";//要加exit命令,否则后面调用ReadtoEnd()命令会假死
            using (Process p = new Process())
            {
                p.StartInfo.FileName = CmdPath;
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.RedirectStandardError = true;
                p.StartInfo.CreateNoWindow = true;
                p.Start();

                p.StandardInput.WriteLine(cmd);
                p.StandardInput.AutoFlush = true;

                p.WaitForExit();
                p.Close();
            }
        }

调用:

   string sIDMPath = @"E:\Software\idman_lv\IDM\IDMan.exe";
   string sDownloadPath="http://pan.baidu.com/s/...";//网盘链接
   string sOutPutPath = @"D:\TempFolder\";
   string sFileName= Guid.NewGuid().ToString()+".pdf";
   string sCmd = string.Format(@"{0} /d ""{1}"" /p ""{2}"" /f ""{3}""", sIDMPath, sDownloadPath, sOutPutPath, sFileName);
   CmdBox.AppendText(sCmd + "\n");
   SqlProcs.RunCmd(sCmd);

注释:

1.如果调用程序路径中有空格时,cmd命令执行失败,可以用双引号括起来

2.阻止IDM弹出开始下载、下载完成、重复文件询问窗口

 

 

 3.如何以管理员身份运行程序请参考http://www.cnblogs.com/babycool/p/3569183.html