我有一个在sys托盘中运行的winforms应用程序(C#.net 2.0)。用户可以从系统注销,并显示Windows的常用登录屏幕。
我想检测用户何时重新登录。
我知道有一个SessionEnding
事件可以在用户注销时检测到。如果存在,我需要反向该事件。
我需要在应用程序启动后才能执行特殊操作,因为“注销日志”而不是计算机(实际操作系统)启动时。
答案 0 :(得分:3)
当用户注销时,所有正在运行的应用程序都已关闭,包括最小化到任务栏通知区域的WinForms应用程序。 SessionEnding
事件的目的是让您在用户注销或计算机关闭时正常关闭应用程序。没有相应的SessionBeginning
事件,因为当用户重新登录时,您的应用不会自动重新打开。
如果您希望在用户登录时自动启动应用程序,则需要将其放在“Startup”文件夹中。当用户登录时,该文件夹中的所有程序都将自动启动。
您可以配置安装程序,将应用程序放在用户的“Startup”文件夹中(使用CSIDL_STARTUP
environment variable查找正确的位置)或所有 users(使用CSIDL_COMMON_STARTUP
环境变量)。当然,如果您没有安装程序,则可以始终手动将应用程序的快捷方式放入该文件夹中。