首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >伪造窗口焦点(沙箱?,App-V?)

伪造窗口焦点(沙箱?,App-V?)
EN

Stack Overflow用户
提问于 2012-04-28 11:59:57
回答 2查看 547关注 0票数 0

我正在尝试弄清楚如何能够从本质上欺骗一个窗口,使其认为它具有焦点。我通过一些搜索发现,我需要一些沙箱来完成这项工作。操作系统和窗口之间的中间层。

如果能给我指明正确的方向,让我知道如何通过C# (如果必要的话,可以使用pinvoke等)来实现这一点,我将不胜感激。从本质上讲,从C#程序启动另一个可执行文件,并以某种方式将其设置在一个具有恒定窗口焦点的人造桌面上。但是仍然能够像平常一样与窗口交互(就像一个窗口包装器,如果你愿意的话,它可以失去它想要的焦点,但包含在其中的窗口永远不会认为它没有焦点)。

我确信这是一个相当大的任务(虽然,也许不会是,也许有人知道一个优雅的解决方案),但我知道这是可能的,因为我在商业产品中看到过类似的事情。(我正在尝试模仿这个沙盒产品的一种行为)。

EN

回答 2

Stack Overflow用户

发布于 2012-04-28 12:54:58

首先,尝试调用激活事件:

代码语言:javascript
复制
private void Form1_Activated(object sender, EventArgs e)
{
    //Code
}

然后在所有函数中声明一个eventarg:

代码语言:javascript
复制
private EventArgs ev;

最后,当你想要伪装一个焦点时,调用激活的函数:

代码语言:javascript
复制
Form1_Activated(this, ev);

希望对大家有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2016-10-10 07:54:31

您可以尝试将WM_ACTIVATE消息注入目标windows消息队列。这可能会欺骗它认为它有焦点,即使它没有。这真的取决于应用程序如何检查焦点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10360455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档