在我的程序中,我想打开一个Excel文件并给出Excel焦点。如何通过C#打开Excel并提供Excel焦点
我使用process.Start()来做到这一点,它只能在第一次打开Excel时运行,它会启动Excel并为其提供焦点。
但是,如果我不收集第一个Excel或者这已经是我的系统中打开的Excel,并且返回到我的程序,打开另一个Excel,这次,新打开的Excel不会被带到前台并没有重点。
我试图使用Windows API来获取窗口和设置的重点,但它抛出一个异常时,打开第二个Excel中:
process.MainWindowHandle = 'process.MainWindowHandle' threw an exception of type 'System.InvalidOperationException'
谁能帮助我?提前致谢。
我试过添加WaintForInputIdle,第一次打开excel,没关系,但是在那之后,如果我尝试打开另一个Excel,我会得到一个异常'没有进程与此对象关联。在process.WaitForInputIdle()和进程的每个属性都是[process.xxxx'抛出'System.InvalidOperationException'类型的异常],就像一个没有调用start()方法的进程一样。 – zousijiu 2012-02-29 13:02:07
好的,我有另外一个想法。我在这里猜测,因为它很难通过堆栈溢出进行调试! – 2012-02-29 13:12:57