2012-04-28 23 views
0

我想弄清楚我怎麼能夠基本上把一個窗口變成思考它的焦點。我通過搜索找到的是,我需要某種沙箱來實現這一點。 OS和窗口之間的中間層。僞造窗口焦點(沙盒?,應用程序V?)

我很感激一些幫助,指出我可以通過C#(如果需要的話可以通過pinvoke等)完成這項工作的正確方向。從本質上啓動C#程序中的另一個可執行文件,並以某種方式將其設置爲位於虛擬桌面上,並持續關注窗口。但仍然可以像平常那樣與窗口進行交互(就像一個窗口包裝器,如果你願意,它可以失去所有想要的焦點,但包含的窗口永遠不會認爲它沒有焦點)。我相信這是一項很有意義的事情(雖然也許不會,也許有人知道這是一個優雅的解決方案),但我知道這是可能的,因爲我在商業廣告中看到過類似的事情產品。 (我試圖模擬這個沙盒產品的行爲之一)。

回答

0

首先嚐試調用激活事件:

private void Form1_Activated(object sender, EventArgs e) 
{ 
    //Code 
} 

再出任何功能,聲明eventarg:

private EventArgs ev; 

最後,當你要假的焦點,調用激活功能:

Form1_Activated(this, ev); 

希望有所幫助!

+0

對不起,但是,這與我所說的事情沒有什麼關係。我更傾向於欺騙第三方應用程序,使其相信它已經關注(像遊戲或其他類似的應用程序)。 – Hydra 2012-04-28 22:08:00

0

您可以嘗試將WM_ACTIVATE消息注入到目標Windows消息隊列中。這可能會誘使它認爲它有重點,即使它沒有。這實際上取決於應用程序如何檢查焦點。