【发布时间】:2011-07-04 10:52:33
【问题描述】:
我想为我的应用程序设置一个持久状态。让我解释。 启动时间有点长(主要是由于对远程服务器的许多数据库请求,这需要 5-10 秒,甚至更多,因为我的用户通常运行的应用程序太多......)我想设置一个在需要时隐藏和显示我的应用程序的方法。
我现在正在做的是仅在用户点击红十字时将应用程序减少到托盘。 (应用程序只有在用户选择 File -> Exit 时才会真正退出)。
所有用户都在启动一个安装程序,它会检查已安装的版本,然后是在线可用的版本,并在启动前更新应用程序(如果需要)。
现在,我希望它首先检查进程监视器(在任务管理器的进程选项卡中找到的监视器),如果某个进程已经在为应用程序运行,它只会再次显示该窗口。否则,如果没有进程在运行,我们可以处理经典检查更新然后启动步骤。 这尤其会消除我经常遇到的许多愚蠢的客户请求(“嘿,您的应用程序加载时间太长,所以我再次单击它 5 次,它启动了 6 个实例!!!!”:/)因此节省了我花了很多无用的时间要求他们停止启动同一应用程序的 50 个实例,因为它不会让它变得更快......
所以我的主要问题是:如何在 C#/WPF 中执行这样的技巧? 现在,我的最小化过程有点简单(即使可能太简单了):我只是隐藏窗口和任务栏条目。现在我不知道如何从我的安装程序中显示它
有什么想法吗?
【问题讨论】:
-
真是个好主意。我还想说,您可以/应该出现一个启动屏幕并向用户反馈应用程序正在加载,并在后台线程上处理这些初始查询。
-
已经有一个启动画面,它以非常清晰的方式显示加载状态。问题是我为交易者工作,他们总是在 6 个以上的屏幕上运行至少 20 个应用程序,我不能以
TopMost的方式保持启动画面,因为它会干扰他们的工作,并且在不检查的情况下启动应用程序再次。我尝试添加 NotifyIcon 以获取信息,或者在 TopMost 中添加一个小的加载进度条,他们不断启动它 4 或 5 次。不幸的是,现在是时候以另一种方式处理它了:/