我正在编写一个监视状态的程序。 它启动主窗口(LoginForm)来请求用户凭据,然后隐藏表单。 之后,LoginForm进入NotifyIcon,并且所有剩下的工作正在用隐藏的LoginForm完成。 我已经在LoginForm的FormClosing事件中实现了所有的清理工作。 在正常的退出过程中,一切正常。
问题是,程序一直坐在托盘中,我倾向于在closures窗口之前忘记closures它,程序不会保存closures事件的状态。
我已经阅读了许多论坛和文档,并从我读过的事件FormClosing / FormClosed + SessionEnding / SessionEnded必须发射。 但看起来他们只是不开火。 甚至不能取消SessionEnding中的closures(用愚蠢的e.Cancel = true) – 程序消失而没有到达这个地方。
我已经自己做了一个小的deBUGging库,将deBUGging信息写入一个文件,并立即刷新caching。 我已经将deBUGging消息添加到所有事件。 当我尝试在windows中注销用户(与closures相同)进行testing时 – 我看不到任何事件通常被触发,只是程序消失。 没有例外,我可以赶上,没有事件等。当手动退出程序或通过“taskkill / IM” – 我看到所有预期的deBUGging打印输出。 更有趣的是 – 有时程序会在windowsclosures期间发生closures事件并做适当的清理工作。
我的程序甚至需要pipe理员权限才能打开文件,这是否正常?
以编程方式隐藏PropertyGrID中的属性
如何在.NET中检测当前的进程/线程匮乏
.NET:发送文本消息到同一个应用程序的所有实例并读取它
使用.NET获取windows上的实际文件名(具有适当的shell)
已经浪费了几天的时间了。 按照MS文章中的build议覆盖WndProc – 程序也不会到达WndProc(为了确保它在closures表单之前到来)。 尝试而不是FormClosing事件来重写LoginForm的OnClosing – 没有运气。 添加了UnhandledException处理程序,Microsoft.Win32.SessionEnding,Microsoft.Win32.SessionEnded,Form.FormClosing,Form.FormClosed事件处理程序 – 没有运气。
我怀疑这是一个隐藏表单的问题,或者只是在closures期间发生某种exception(资源处置?)。 我怎么能find为什么发生这种情况? 是否有一些简单的方法来模拟windowsclosures单个应用程序,使VS中的deBUGging成为可能? 我试过RMTool – 出于某种原因,它无法模拟关机,程序只是忽略它。
更新:程序使用System.Timers.Timer来定期轮询服务器的任何更改。
在窗口上绘制位图时不希望的消除锯齿
.Net程序为用户计算机上的所有图像编制索引的最快方法是什么?
64位版本的windows SDK中的Fxcop在哪里?
哪些windows的程序或服务可能会改变文件的LastAccessed属性?
是否有可能等到其他线程处理过程input消息?
我已经做了一些研究,基本上,在windows XP之后,他们改变了关闭的方式。
您无法使用form_closing事件可靠地阻止或捕获关闭事件
您必须使用新的API来执行此 *** 作。 这里有一个完整的例子: http : //bartdesmet.net/blogs/bart/archive/2006/10/25/windows-Vista- 2D00 -ShutdownBlockReasonCreate-in-C_2300_.aspx
您应该可以调用该功能来阻止关闭(显示一条消息,例如“保存更改…”),然后保存并在后台退出应用程序。 一旦你的程序退出,它应该允许窗口继续关闭。
我认为windows只是配置为自动关闭所有的应用程序,因此应用程序没有机会捕捉SessionEnding事件等等:看看http://www.addictivetips.com/windows-tips/disable-automatic-termination -of-applications-during-shutdown-in-windows-7 /或在计算机配置>管理模板>系统>关闭选项中检查您的配置。
总结以上是内存溢出为你收集整理的C#WinForms托盘应用程序 – 不捕获Windows关机事件全部内容,希望文章能够帮你解决C#WinForms托盘应用程序 – 不捕获Windows关机事件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)