我为Windows 7创建了一个Credential Launcher,并且能够在Tile按钮点击事件后运行Windows应用程序,这非常容易。
我添加了一些注册表设置和*pbAutoLogon = FALSE;
。
但是现在我正在尝试为Windows XP做同样的事情。
我应该针对哪个功能或如何实现相同的结果?
答案 0 :(得分:1)
我看到你用“Gina”标记了你的问题,所以我猜你知道XP上不存在凭证提供商。
您的答案取决于何时您想要运行该程序,特别是关于安全注意序列(SAS,或用户按下CTRL-ALT-Delete)
WlxDisplaySASNotice
WlxLoggedOutSAS
由于您不想自己编写整个GINA,因此您可以使用包装msgina.dll
的自定义Gina。 Here is one I wrote,你可以在Platform SDK中找到我最初的原创作品。
使用该approch,您有机会在某些事件之前或之后执行代码,例如在成功登录后运行程序,例如:
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
会等待,但您的用户可能不会。跨过一个进程让它运行。SYSTEM
权限运行,这存在安全风险。沙盒化您的过程可能很难。如果你无法突破它,不要假设没人能......