2012-01-20 140 views
3

我有下面的代码来创建屏幕截图,但是我面临的唯一问题是它打开命令提示符并让用户关闭它,我可以隐藏/删除此命令提示符?命令提示符在屏幕截图时隐藏/删除

private const int TIMEOUT = 30000; 
private const string TMP_NAME = "TMP_SHOT1.png"; 

protected void Page_Load(object sender, EventArgs e) 
{ 
    theImage.ImageUrl = GetImage("http://www.google.com", "MyImage", 
       Server.MapPath("~"), 
       Convert.ToInt32("400"), 
       Convert.ToInt32("400") 
      ); 
} 

public string GetImage(string url, string name, 
         string rootDir, int width, int height) 
{ 
    try 
    { 
     string fileName = rootDir + "\\" + TMP_NAME; 
     GenerateScreenShot1(url, rootDir); 
     System.Drawing.Image thumbImage = 
         System.Drawing.Image.FromFile(fileName); 
     fileName = rootDir + "\\" + name + ".png"; 
     if (File.Exists(fileName)) 
      File.Delete(fileName); 

     thumbImage.Save(fileName, ImageFormat.Png); 

     return name + ".png"; 
    } 
    catch (Exception ex) 
    { 
     return null; 
    } 
} 

public void GenerateScreenShot1(string url1, string rootDir1) 
{ 
    string arguments = url1 + " " + rootDir1 + "\\" + TMP_NAME; 
    Process myProcess = new Process(); 
    myProcess.EnableRaisingEvents = false; 
    myProcess.StartInfo.RedirectStandardOutput = false; 
    myProcess.StartInfo.CreateNoWindow = false; 
    myProcess.StartInfo.UseShellExecute = true; 
    myProcess.StartInfo.FileName = rootDir1 + "\\" + "IECapt.exe"; 
    myProcess.StartInfo.Arguments = arguments; 
    myProcess.Start(); 
    myProcess.WaitForExit(); 
    myProcess.Close(); 
    myProcess.Dispose(); 
} 

要运行上述代码,您需要将IECapt.exe放在根文件夹中。

+0

请不要声明,如“*请帮助,这是迫切*”在你的问题。它被社区所诟病。 – jadarnel27

+0

@ jadarnel27我为此道歉。 – Zerotoinfinity

+0

没问题,只是以为我会让你知道(它往往会吸引downvotes有时)=)+1,这是一个有趣的问题! – jadarnel27

回答

0

尝试设置myproces.StartInfo.UseShellExecute = false;

+0

尽管如此,打开命令提示符 – Zerotoinfinity

1

更改线路

myProcess.StartInfo.CreateNoWindow = false; 

myProcess.StartInfo.CreateNoWindow = true; 

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.createnowindow.aspx

+0

它不是打开命令提示符,但当我试图删除发布后的图像文件时,我得到这个错误,**该操作无法完成,因为该文件在WebDev中打开。 WebServer40.exe **在这种情况下,我必须手动打开任务管理器并关闭任务。 – Zerotoinfinity