C#或C ++ - 创建假焦点?

时间:2012-06-22 08:23:44

标签: c# c++ windows winapi

我想知道是否有任何方式通过C#或C ++发送伪造或以其他方式欺骗程序认为它有焦点?我认为你可以使用SendMessage / PostMessage向它发送一条消息,让它变成焦点。

2 个答案:

答案 0 :(得分:3)

没有保证可以让它认为它具有焦点,因为有多种方法可以检查它是否具有焦点。例如,它可能会检查WM_SETFOCUS,然后在收到WM_KILLFOCUS时检查它是否失焦。因此,在这种情况下,您可以通过使用窗口挂钩发送拦截所有WM_KILLFOCUS消息来欺骗它。

但是,它也可能通过调用GetFocus来检查它是否具有焦点。因此,要在该场景中欺骗它,您需要绕道GetFocus并伪造返回值。您可以尝试这两种方法,但它们可能有效,但可能不会,但我不希望它们可靠地工作。

答案 1 :(得分:0)

我迷上$html = View::make('tpl',compact('aa','bb'))->__toString();让游戏知道它仍然是焦点。它在我工作的两场比赛中运作良好。