是否可以检测表单何时在我的应用程序中打开?
我有一个由多个应用程序使用和初始化的程序集。当我的应用程序中的表单打开时,我需要使用此程序集来检测它是否能够修改它。
我找到的唯一解决方案是使用MessageFilter, 编辑:,如Most Efficient Way for getting notified on window open - 但他们要求所有进程中的窗口,我只想在自己的进程中获取窗口。由于我只对自己的应用程序/进程感兴趣,所以我希望找到一个唯一的.NET解决方案。
Application.AddMessageFilter(new MessageFilterImpl());
class MessageFilterImpl : IMessageFilter
{
public bool PreFilterMessage(ref Message m)
{
Control wnd= Form.FromHandle(m.HWnd);
if (wnd is Form)
knownForms.Add((Form)wnd);
return false;
}
}
我发现收到的第一条消息是0xC052,但我仍然没有找到它的实际含义。
第一个意图是选择更好的设计,但我不允许。