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 をルート フォルダーに配置する必要があります。

4

3 に答える 3

2

これを試して

myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

また

ProcessWindowStyle.Hidden を使用するには、ProcessStartInfo.UseShellExecute プロパティを false にする必要があります。

ここから http://msdn.microsoft.com/en-us/library/system.diagnostics.processwindowstyle.aspx

于 2012-01-20T13:56:09.800 に答える
1

行を変更する

myProcess.StartInfo.CreateNoWindow = false;

myProcess.StartInfo.CreateNoWindow = true;

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

于 2012-01-20T13:55:01.203 に答える
0

myproces.StartInfo.UseShellExecute = false; を設定してみてください。

于 2012-01-20T13:53:07.430 に答える