Process.Start()并继续我的代码

时间:2012-08-09 10:09:15

标签: c# screenshot process.start

我的节目是胜利形式(c#)。它应该打开一个外部程序,对它的主窗口进行打印,并关闭它。 通过使用Process.Start()我可以打开程序,但然后所有的焦点都在它上面,我的代码停止了。只有当我自己关闭它时,我的表单才会继续 - 但对于屏幕截图来说已经太晚了。 那么如何强制我的代码继续运行呢?

    public void Runttk(string maromnum)
    {
        Process runttk = new Process();
        runttk.StartInfo.UseShellExecute = true;               
        runttk.StartInfo.FileName = @"C:\\program.exe";
        runttk.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
        runttk.Start();
        this.Focus();
        try
        {
            if (runttk.WaitForInputIdle()==true)
            {                                          
                PringJpg(maromnum);
                Killttk();
            }
        }
        catch (Exception e)
        {
        }

    }

谢谢

更新: eventuanlly我用过Thread.Sleep(3000)。抓住了但是做了伎俩。 我没有使用背景工作,因为最终程序和我的代码的最终结果之间的同步不够明确。

2 个答案:

答案 0 :(得分:1)

也许你的程序从不闲置 - 意味着runttk.WaitForInputIdle()==true让你的应用等到关闭它。

添加限制(例如runttk.WaitForInputIdle(500)==true)以满足您的需求。

答案 1 :(得分:1)

尝试使用代码,但使用其他程序(如notepad.exe),记事本运行然后控制下降到您调用PringJpg的位置。

所以我认为问题在于if(runttk.WaitForInputIdle()== true)阻塞,请尝试在此操作中添加超时。