需要幫助獲取主窗口或窗口狀態屬性使用Excel VBA腳本?如何使用Excel VBA獲取Windows應用程序主窗口和窗口狀態屬性?
在我的Windows機器上,我有兩個進程以相同的名字運行,例如xyz.exe。
其中一個有Windows應用程序,另一個是幫助程序或後臺進程。我想使用mainwindowtitle或window status屬性來找出哪一個是windows應用程序進程。
我之所以選擇這些屬性是因爲後臺進程沒有主窗口和窗口狀態爲空。下面是顯示兩個進程的進程管理器屏幕截圖。
使用的腳本和應用程序WMI任務我可以很容易找到進程ID,但我無法弄清楚如何獲得mainwindowtitle或窗口狀態屬性。
Private Sub getP()
strComputer = "."
sExeName = "XYZ.exe"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process
WHERE Name = '" & sExeName & "'", , 48)
For Each objItem In colItems
Debug.Print "ProcessId: " & objItem.ProcessId
Next
End Sub
你知道窗口的標題?如果是這樣,你可以使用WinAPI'FindWindow'函數。 –
由於標題可能會根據打開的文件名稱更改,因此可能無法正常工作。 – ravi
理論上,您應該能夠從ProcessID獲取句柄,然後使用WinAPI函數從句柄中獲取窗口標題。儘管我現在無法得到這個工作。 –