0

我正在尝试劫持现有窗口并将其替换为我拥有的 Winforms 的内容。我认为将表单的内部句柄替换为我想要覆盖的那个会很酷,并且想知道是否有人尝试过它?

干杯,弗洛里安

4

1 回答 1

0

如果您在要替换的窗口的进程和线程中执行,这应该很容易尝试。如果您没有在原始窗口的进程和线程上运行,那么它不太可能工作。如果这是您尝试替换的 Windows shell 的一部分,那么您不太可能让它工作。

如果您可以进行窗口替换,您将不得不以期望原始子窗口响应的方式响应父窗口,但大概您已经考虑过这一点。

如果父窗口持有原始子窗口的句柄,那么您替换它的尝试将失败(它仍会尝试与原始句柄对话)。但是如果它通过 id 来跟踪孩子,那么你所要做的就是给你的窗口相同的窗口 id,并使用 SetWindowPos 给它与原始孩子相同的大小、位置和 z 顺序,然后销毁原来的孩子。

祝你好运,这是一种高风险的行为,但你可以尝试的所有其他技巧也是如此,比如子类化和挂钩。

于 2010-02-19T21:39:35.727 回答