首页 / 知识
关于c#:以编程方式确定锁定工作站的持续时间?
2023-04-14 06:40:00

Programmatically Determine a Duration of a Locked Workstation?如何用代码确定机器被锁定了多长时间? 也欢迎使用C#之外的其他想法。 我喜欢Windows服务的想法(并且已经接受了它)是为了简洁和整洁,但是不幸的是,我认为在这种情况下它不会对我有用。我想在办公室而不是在家(或者我想在家中)上在工作站上运行它,但是出于国防部的考虑,它的工作受到了很大的限制。这实际上就是我自己滚动自己的原因的一部分。 我还是把它写出来,看看它是否有效。谢谢大家! 我以前没有发现过,但是从任何应用程序中,您都可以连接SessionSwitchEventHandler。显然,您的应用程序将需要运行,但是只要它是:
我将创建一个Windows Service(Visual Studio 2005项目类型)来处理OnSessionChange事件,如下所示:
此时,您如何记录活动以及如何记录活动取决于您,但是Windows服务可提供对Windows事件(如启动,关闭,登录/注销以及锁定和解锁事件)的快速便捷访问。 下面的解决方案使用Win32 API。工作站锁定时调用OnSessionLock,解锁时调用OnSessionUnlock。
我知道这是一个老问题,但是我找到了一种获取给定会话的锁定状态的方法。 我在这里找到了答案,但是它是用C语言编写的,所以我尽可能地将其翻译为C#以获取锁定状态。 所以去了:
注意:上面的代码是从一个更大的项目中提取的,所以如果我错过了一点抱歉。我没有时间测试上面的代码,但计划在一两周后回来检查所有内容。我现在才发布它是因为我不想忘记这样做。 如果您有兴趣编写Windows服务以"发现"这些事件,请使用topshelf(使编写Windows服务更加容易的库/框架)。
,现在是将topshelf服务连接到上面的接口/混凝土的代码 除了我标记为 的两行外,以下所有内容均为"典型" topshelf设置...。 / *这是魔术线* / 这些是激发SessionChanged方法的原因。 我在Windows 10 x64上对此进行了测试。我锁定并解锁了机器,并得到了预期的结果。
我的packages.config提供有关版本的提示:
注意:这不是答案,而是对Timothy Carter答案的(贡献),因为到目前为止,我的声誉不允许我发表评论。 以防万一有人尝试了Timothy Carter的答案中的代码,并且没有立即在Windows服务中使它正常工作,则需要在的构造函数中将一个属性设置为
并确保在启动服务后不要设置此属性,否则将抛出 在Windows Task Scheduler中,您可以创建触发 我意识到这不是编程方式。它比编写服务更简单。它不会丢失任何事件,因为在锁定/解锁转换时您的程序恰巧没有运行。 下面是100%工作代码,用于查找PC??是否已锁定。 在使用此名称之前,请使用名称空间
|
最新内容
相关内容
linux服务器搭建命令?
linux服务器搭建命令?,系统,服务,软件,地址,平台,在线,密码,工具,环境,百度,linux下简单快速的搭建ftp服务器环境具体步骤如下:检查安装vsftpdlinux锁定终端命令?
linux锁定终端命令?,工作,密码,地址,系统,信息,命令,图片,状态,目录,用户,linux基本命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目服务器重启命令linux?
服务器重启命令linux?,工作,标准,设备,服务,系统,名称,命令,百度,网络,密码,怎么使用linux命令重启服务器1、shutdown。poweroff。init。reboolinux终端命令行编程?
linux终端命令行编程?,系统,工作,命令,终端,概念,时间,第一,代码,发行,地方,Linux下5个有趣的命令行技巧介绍我们可以使用history命令来查看曾linux服务端常用命令?
linux服务端常用命令?,工作,地址,系统,网络,基础,命令,标准,工具,信息,管理,linux常用命令linux系统常用操作命令如下:ls:全拼list,功能是列出目linux命令行锁定界面?
linux命令行锁定界面?,系统,管理,地址,密码,工作,一致,数字,首页,快捷键,界面,linux系统基本操作首先,您需要了解Linux系统的文件系统和目录结linux禁用服务命令行?
linux禁用服务命令行?,服务,系统,软件,管理,工具,信息,状态,平台,连续,技术,linux系统ssh服务关闭命令1、exit就可以呀 输入exit并回车就可以linux停服务常用命令?
linux停服务常用命令?,地址,工作,系统,命令,服务,信息,标准,管理,代码,进程,linux常用命令linux系统常用操作命令如下:ls:全拼list,功能是列出目linux服务器删除命令?
linux服务器删除命令?,系统,服务,管理,情况,命令,工作,互动,地址,软件,较大,linux系统里怎么删除已经安装的dns服务器如果是清除NSCD上的Cachelinux编程调用命令?
linux编程调用命令?,系统,标准,管理,工作,基础知识,情况,环境,设备,基础,首页,linux下怎样用c语言调用shell命令可以通过system函数,调用shelllinux开启服务命令?
linux开启服务命令?,服务,标准,设备,工作,网络,系统,密码,命令,服务器,终端,怎么使用linux命令重启服务器1、shutdown。poweroff。init。reboolinux服务器负荷命令?
linux服务器负荷命令?,信息,电脑,中科,环境,工具,系统,平均,检测,情况,状态,linux服务器监控的几个方法和命令uptime 该命令直观的显示了服务