我有一个Windows服务,我想使用帐户用户名和密码以编程方式解锁工作站.
本文https://technet.microsoft.com/en-us/library/dn751047(v=ws.11).aspx解释了Windows上的登录验证工作流程,如下图所示:

如上所述,在步骤5,用户将凭证输入到登录UI中.我想要实现的是让Windows服务输入凭据并让winlogon执行登录.
没有winlogon API来实现这一目标.如在其他问题中所见,使用winapi LogonUser函数成功执行身份验证并返回令牌,但它不会切换到应用程序桌面,并且Logon UI仍保留在屏幕上.
大多数文章和SO答案暗示了凭证提供者,但所有凭据提供者样本都需要用户与Logon UI进行交互.
更新:我看到一些用户还没有完全理解这个问题,并提出了对我的案例无用的解决方法.我正在尝试实现的工作流程如下:
目前,我有兴趣制定第4步和第4.1步.
我在C中有以下代码源:
#include<stdio.h>
void main()
{
int i=0, x=3;
while((x---1))
{
i++;
}
printf("%d", i);
}
Run Code Online (Sandbox Code Playgroud)
这个while语句是如何工作的,为什么它打印2而不是1?