我正在使用ActiveDocument.ActiveWindow.Hwnd在 MS Word 中獲取活動檔案視窗的句柄,但它在 Word 2007 中確實崩潰了。我嘗試使用 long 而不是 int,試圖捕獲例外但沒有拋出例外。
Public WithEvents wa As Microsoft.Office.Interop.Word.Application
wa = HostApplication
Public Function getWindowHWND() As Integer
Try
getWindowHWND = wa.ActiveDocument.ActiveWindow.Hwnd
Catch ex As Exception
MsgBox(1)
getWindowHWND = -1
Finally
End Try
End Function
難道我做錯了什么?這是一個錯誤嗎?如果無法修復,如何以等效方式獲得手柄?先感謝您。
uj5u.com熱心網友回復:
Word 2007 中不存在此類屬性。
從 Word 2013 開始,您可以使用從物件公開的Hwnd屬性:WindowApplication
var windowHandle = wordApplication.ActiveWindow.Hwnd;
沒有必要使用ActiveDocument中間的屬性。當沒有檔案打開時,這將失敗。
在早期的 Word 版本中,您可以使用Process.NET BCL 中的類來檢索主視窗句柄,例如:
var word = new Microsoft.Office.Interop.Word.Application();
word.Visible = true;
word.Activate();
word.Application.Caption = "My Word";
foreach( Process p in Process.GetProcessesByName( "winword" ) )
{
if( p.MainWindowTitle == "My Word" )
{
Debug.WriteLine( p.Handle.ToString() );
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/457041.html
上一篇:已經創建行后如何添加到行
下一篇:如何在vb.net中按類控制標簽
