我試圖調試我的Windows安裝問題。細節並不特別重要,但我正在尋找以下問題的答案:如何找出誰是SendMessage?
explorer.exe收到WM_SETTINGCHANGE消息。在WinDbg中,我可以在適當的WndProc中打破。我如何找出誰發送了這條消息?那就是:有什麼辦法可以追溯到名爲
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, ...)
的流程?
我試圖調試我的Windows安裝問題。細節並不特別重要,但我正在尋找以下問題的答案:如何找出誰是SendMessage?
explorer.exe收到WM_SETTINGCHANGE消息。在WinDbg中,我可以在適當的WndProc中打破。我如何找出誰發送了這條消息?那就是:有什麼辦法可以追溯到名爲
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, ...)
的流程?
Windows消息是匿名的。您調用的應用程序有沒有辦法確定他們來自何處,除非消息定義了一些方法來識別發送者(這將是很容易僞造)
本博客文章可以幫助您執行RPC調試:http://kobyk.wordpress.com/2008/06/07/remote-procedure-call-debugging/
你會需要啓用RPC狀態收集:http://msdn.microsoft.com/en-us/library/ff542974.aspx
調用進程阻塞,直到消息傳遞。因此,必須有一個RPC機制。我知道有一種方法可以在跨進程的COM調用中找到調用者。我想知道是否有辦法爲Windows消息做同樣的事情。 –
...我不問我的應用程序是否可以弄清楚。我在問WinDbg是否能算出來。 –