2010-03-16 66 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

相关问题