如何检测用户是否正在与 PowerPoint 中的 "File Tab" 交互?

How to detect if user is interacting with "File Tab" in PowerPoint?

我正在寻找一种方法来确定用户何时单击“文件选项卡”(并且可能标记以下对话框的任何子选项卡在 PowerPoint 中显示(参见屏幕截图)。

我尝试检查 ActiveWindow.ViewType 但是当用户打开对话框时它没有改变。我还尝试检查窗格的各自“活动”属性,但当用户在此屏幕上时它也不会改变。

我也试过这段代码,但没有用。

    <DllImport("user32.dll")>
    Private Shared Function GetForegroundWindow() As IntPtr
    End Function

    If GetForegroundWindow() <> Globals.ThisAddIn.Application.HWND Then
         Exit Function
    End If

我注意到在显示此对话框时无法进行键盘输入,但我不知道如何在 VSTO 解决方案中进行检查。 User32 IsWindowEnabled() returns 显示对话框时为真。

有什么想法吗? 谢谢

后台UI提供了两个你感兴趣的回调:

  • onShow
VBA: Sub OnShow(contextObject As Object)
C#: void OnShow(object contextObject)
Visual Basic: Sub OnShow(contextObject As Object)
C++: HRESULT OnShow([in] Object *pContextObject)
  • 隐藏
VBA: Sub OnHide(contextObject As Object)
C#: void OnHide(object contextObject)
Visual Basic: Sub OnHide(contextObject As Object)
C++: HRESULT OnHide([in] Object *pContextObject)

Introduction to the Office 2010 Backstage View for Developers 文章中阅读更多相关信息。