Windows 在GINA beofe登录屏幕(命令行)中运行EXE应用程序
我已经为Windows7创建了一个凭证启动器,并且能够在Tile按钮点击事件后运行Windows应用程序,这非常简单 我添加了一些注册表设置,并且Windows 在GINA beofe登录屏幕(命令行)中运行EXE应用程序,windows,winlogon,gina,Windows,Winlogon,Gina,我已经为Windows7创建了一个凭证启动器,并且能够在Tile按钮点击事件后运行Windows应用程序,这非常简单 我添加了一些注册表设置,并且*pbAutoLogon=FALSE 然而,现在我正在尝试对WindowsXP做同样的事情 我应该针对哪个函数,或者如何实现相同的结果?我看到您用“Gina”标记了您的问题,所以我想您知道XP上不存在凭据提供程序 您的答案取决于您希望何时运行该程序,特别是关于安全注意序列(SAS,或当用户按CTRL-ALT-Delete时) 在SAS之前,请使用Wl
*pbAutoLogon=FALSE代码>
然而,现在我正在尝试对WindowsXP做同样的事情
我应该针对哪个函数,或者如何实现相同的结果?我看到您用“Gina”标记了您的问题,所以我想您知道XP上不存在凭据提供程序
您的答案取决于您希望何时运行该程序,特别是关于安全注意序列(SAS,或当用户按CTRL-ALT-Delete时)
- 在SAS之前,请使用
WlxDisplaySASNotice
- 在SAS之后,使用
WlxLoggedOutSAS
因为您不想自己编写一个完整的GINA,所以可以使用一个定制的GINA来包装msgina.dll
,您可以在平台SDK中找到我最初的版本
使用这种方法,您有机会在某些事件之前或之后执行代码,例如在成功登录后运行程序,例如:
int WINAPI WlxLoggedOutSAS(PVOID pWlxContext, DWORD dwSasType, PLUID pAuthenticationId, PSID pLogonSid, PDWORD pdwOptions, PHANDLE phToken, PWLX_MPR_NOTIFY_INFO pMprNotifyInfo, PVOID * pProfile)
{
int result;
result = pfWlxLoggedOutSAS(pWlxContext, dwSasType, pAuthenticationId, pLogonSid, pdwOptions, phToken, pMprNotifyInfo, pProfile);
if (result == WLX_SAS_ACTION_LOGON)
{
//We have a successful logon, let's run our code
run_my_custom_code();
}
return result;
}
不过,有一些警告:
- 代码无法阻止
Winlogon
将等待,但您的用户可能不会。创建一个进程并让它运行
- 您的程序将以
系统
权限运行,这是一种安全风险。沙箱化您的流程可能很困难。如果你不能摆脱它,不要以为没有人能