如何捕獲由某個窗口(我的案例中的VLC播放器窗口)發送的Windows系統消息(如WM_SETTEXT)?我試圖繼承NativeWindow類並重寫的WndProc這樣的:在.NET中捕獲郵件
class VLCFilter : NativeWindow
{
System.IntPtr iHandle;
const int WM_SETTEXT = 0x000C;
public VLCFilter()
{
Process p = Process.GetProcessesByName("vlc")[0];
iHandle = p.MainWindowHandle;
}
protected override void WndProc(ref Message aMessage)
{
base.WndProc(ref aMessage);
if (aMessage.HWnd != iHandle)
return false;
if (aMessage.Msg == WM_SETTEXT)
{
MessageBox.Show("VLC window text changed!");
}
}
}
我已經與微軟間諜++中WM_SETTEXT消息由VLC播放發送,但我的代碼似乎並沒有完成工作檢查。我主要提到: http://www.codeproject.com/kb/dotnet/devicevolumemonitor.aspx
我試圖讓這項工作一段時間沒有成功。我究竟做錯了什麼?我沒有做什麼?也許有更簡單的方法來做到這一點?我最初的目標是捕捉當VLC播放器(可能在背景中播放某處並且在我的應用程序中不是emmbed)重複其播放(注意到WM_SETTEXT消息發送了,然後我試圖找到它像這樣)。
好點那裏;) – 2010-05-29 17:49:48