[英]Determine if document ACTUALLY has focus
VSTO中是否可以使用属性或函数来确定文档是否具有实际的键盘焦点? 当文档是当前文档但未聚焦时 (例如,显示模式对话框或警报时),属性或函数应返回false。 请注意, ActiveWindow
或ActiveDocument
无法做到这一点,而且当警报集中时, Application.WindowDeactivate
似乎也不会触发。
这是Word 2013(桌面)+ VSTO 4 + C#+ .NET Fx 4.5。
仅可以使用WinAPI。
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr GetForegroundWindow();
bool WordHasFocus {
get {
IntPtr wordHandle = Process.GetCurrentProcess().MainWindowHandle;
IntPtr focusedWindow = GetForegroundWindow() ;
return wordHandle == focusedWindow;
}
}
它仅向您显示该单词具有焦点。 如果要检查给定的文档,则还需要确保给定的文档是活动文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.