在打开Word文档时将按键发送到错误消息

时间:2013-08-24 15:23:26

标签: vb.net office-interop keypress

在打开文档时,我在将错误消息发送到错误消息时遇到了一些问题。

我试图在Word for Dos 5.5文档中打开的文档缺少样式表,您可以手动单击忽略并打开文件,但我还有1000多个文件要执行此操作,因此我想自动执行此

我在Office XP,2003或2010中打开此文档,但我无法通过按键来影响消息。

我一直尝试的代码如下:

Dim objWord As New Word.Application
    Dim objDoc As New Word.Document

    objDoc = objWord.Documents.Open(TempDir + ("\\" + fileInf.Name))

    System.Threading.Thread.Sleep(5000)
    SendKeys.Send("{Enter}")
    System.Threading.Thread.Sleep(5000)
    SendKeys.Send("{&I}")
    System.Threading.Thread.Sleep(5000)

    objWord.WindowState = Word.WdWindowState.wdWindowStateNormal
    objWord.Visible = True

我使用了visible = true只是为了看看我发生了什么,但消息就在那里。

1 个答案:

答案 0 :(得分:1)

我认为发送keyPress不是解决问题的最佳方案,如果可以的话,这是你应该避免的。

您可以尝试隐藏Word消息。可能的方法:

  • 在打开文件之前,尝试使用Application.DisplayAlerts属性禁用消息。所以它会是:

    objWord.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone
    

    MSDN的重要提示:

      

    如果将此属性设置为wdAlertsNone或wdAlertsMessageBox,    Microsoft Word在执行时不会将其设置回wdAlertsAll   停止即可。您应该以始终设置的方式编写代码   当DisplayAlerts属性停止运行时,它返回到wdAlertsAll。

  • 尝试通过设置Documents.Open方法的其他参数来禁用消息。我正在考虑Format参数,您可以尝试设置为wdOpenFormatAllWord以查看它是否禁用消息。

    wdOpenFormatAllWord与早期版本的Microsoft Word向后兼容的Microsoft Word格式


当您编写SendKeys.Send("{Enter}")时,我猜您已导入System.Windows.Forms名称空间,因此它等于System.Windows.Forms.SendKeys.Send("{Enter}")

在我的第一个回答中,我建议,如果您确实需要使用SendKeys方法,请使用 Excel.Application 中的方法。 (因为我需要咖啡......,我完全专注于Excel,虽然问题是关于Word)。

不幸的是,该方法存在于Excel中,但 Word.Application对象中没有SendKeys方法。