【问题标题】:Excel Message During Code(C#)代码期间的 Excel 消息(C#)
【发布时间】:2011-10-19 16:20:57
【问题描述】:

当我的代码运行时,我有一个来自 excel 的消息框弹出一个重试,我只希望我的代码能够模拟按 Enter 键(如果它每次都会弹出)。这是出现并冻结我的代码的消息框。

我使用 OLE 消息关闭了其中一个,但我仍然得到这个消息框来模拟点击重试或输入键,?

//Turn off OLE Error Message
oXL.DisplayAlerts = false;

【问题讨论】:

  • 如果你单步执行你的代码,它似乎会在某一行偶然弹出这个?

标签: c# winforms excel interop


【解决方案1】:

你可以试试sendkeys,发送一个按键到消息框

【讨论】:

    【解决方案2】:

    InputSimulator 是一个非常灵活(且可靠)的包装器,能够模拟键盘和鼠标事件。

    它在底层封装了 SendInput,但抽象出所有 PInvoke 调用和其他复杂性。这是 DLL 中的一个下降(对于您的情况)应该只需要一行代码。

    InputSimulator.SimulateKeyPress(VirtualKeyCode.ENTER);
    

    【讨论】:

    • 这太棒了,我什至不知道这是可能的。谢谢
    【解决方案3】:

    我想知道问题是否是因为您有一个从不使用Application.DoEvents() 调用的大循环?至于忽略对我来说似乎是处理问题的糟糕方式的消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-03
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多