我知道LogonUser API,并尝试使用过它,但失败了。是否有人有解决方案或代码片段可以真正解决这个问题?
我针对NT5操作系统进行目标定位。
嗯,既然有人开始问原因了:我正在开发一个桌面共享应用程序,我想添加解锁工作站的功能。拥有一个非常小而简单的应用程序,在特定时间解锁工作站,以分离问题并避免集成细节。
为了让你有答案,而不是别人留下评论更好的答案。
这当然是可能的,但正如许多人已经说过的那样,这并不明智,如果有人在电脑旁边走过,它解锁后会发生什么,他们能玩多久等等?
无论如何,除了建议您拥有一个服务来处理您想要在计算机上进行的任何工作,甚至远程连接到计算机以进行工作之外,您还可以利用以下信息。 (对于“代码示例”,您可以自己制作)
http://www.paralint.com/projects/aucun/ 是一种GINA实现,即使其他人已经登录,也将能够授予您登录权限。 研究一下,它可能是您正在寻找的内容,并且比在特定时间解锁工作站要安全得多。
作为替代方案,请考虑编写自己的GINA实现,以在预定时间进行解锁。
有关GINA的信息
http://msdn.microsoft.com/en-gb/magazine/cc163803.aspx
http://msdn.microsoft.com/en-us/magazine/cc163786.aspx
在解锁桌面后,我相信您肯定希望再次锁定它。
只是为了提供另一种线索(不做任何判断),autoit(一种脚本化的Windows语言)可能有一个答案,就像在这个帖子中所描述的:
我刚刚发现另一个场景,其中一个人可能想要解锁桌面 ;)
针对我的情况,我需要在断开终端会话后能够恢复控制台会话(我连接到一个带触摸屏但没有键盘的WinXPe亭)。
这是我发现可行的命令行解决方案。我不关闭会话窗口而是运行一个批处理文件,其中包含以下行。我的会话被关闭并且控制台会话被恢复并解锁。
WinXP终端会话后自动解锁工作站
tscon.exe 0 /dest:console
对于Windows Vista/7,控制台会话号已从0更改为1,因此您需要使用
tscon.exe 1 /dest:console