2010-03-16 65 views
2

我需要開發一個永遠不會獲得焦點的應用程序(Delphi),我使用DLL在第二個顯示器上顯示視頻(我在Torrys Delphi - Dr.SAGURA Media Player v.1.0中找到),每次播放時都會收到焦點視頻,如何避免這種情況?
我嘗試:如何避免專注於Delphi應用程序?

procedure TForm.WMActivate(var Msg: TWMActivate); 
begin 
    WA_ACTIVE : 
    begin 
    Msg.Result := 0;// cancel focus 
    end; 
end; 

不成功!

感謝 讓Alysson

+6

正如所寫,這看起來不應該編譯。 – 2010-03-16 11:30:53

+0

看起來像他打算在那裏有案例陳述。 :-) – 2010-03-17 01:55:00

回答

3
  • 在項目設置DPR Application.MainFormOnTaskBar:=假。
  • 重寫表單的OnShow和OnActivate事件並將其添加到它們兩個:ShowWindow(Application.Handle,SW_HIDE);
  • 重寫表單的CreateParams過程並將WS_EX_NOACTIVATE添加到Params.ExStyle。

前兩項將任務欄和Alt + Tab列表中的應用程序隱藏起來,最後一個項目在顯示和點擊時避免獲得焦點。

+0

Ok Craig,感謝解決我的問題的解釋,你的解決方案工作得很好,並感謝給我的方式來寫我的疑惑:-) – 2010-03-17 11:09:24

0

背後的意圖是不是可以專注的?你想避免用戶關閉/最小化/最大化窗口? 也許你的需求可以成爲了解真正的問題。

也許有一個服務,而不是一個普通的應用程序可以伎倆。

+0

我使用應用程序來顯示第二個監視器上的視頻,安裝在同一臺電腦。 – 2010-03-18 10:45:50

相關問題