Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 在GINA beofe登录屏幕(命令行)中运行EXE应用程序_Windows_Winlogon_Gina - Fatal编程技术网

Windows 在GINA beofe登录屏幕(命令行)中运行EXE应用程序

Windows 在GINA beofe登录屏幕(命令行)中运行EXE应用程序,windows,winlogon,gina,Windows,Winlogon,Gina,我已经为Windows7创建了一个凭证启动器,并且能够在Tile按钮点击事件后运行Windows应用程序,这非常简单 我添加了一些注册表设置,并且*pbAutoLogon=FALSE 然而,现在我正在尝试对WindowsXP做同样的事情 我应该针对哪个函数,或者如何实现相同的结果?我看到您用“Gina”标记了您的问题,所以我想您知道XP上不存在凭据提供程序 您的答案取决于您希望何时运行该程序,特别是关于安全注意序列(SAS,或当用户按CTRL-ALT-Delete时) 在SAS之前,请使用Wl

我已经为Windows7创建了一个凭证启动器,并且能够在Tile按钮点击事件后运行Windows应用程序,这非常简单

我添加了一些注册表设置,并且
*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
    将等待,但您的用户可能不会。创建一个进程并让它运行
  • 您的程序将以
    系统
    权限运行,这是一种安全风险。沙箱化您的流程可能很困难。如果你不能摆脱它,不要以为没有人能