c++ - 如何设置在 Windows 登录屏幕上打开应用程序的按钮

标签 c++ windows credential-providers winlogon screen-lock

这是我的第一个问题。

我想知道是否有办法在登录屏幕上设置按钮来打开自定义应用程序。

我已经搜索了 Microsoft 文档,然后找到了有关凭据提供程序的信息,但我不想创建 IU 登录名。我只想打开这样的应用程序:

enter image description here

enter image description here

This is what I want to achieve

如果有什么可以帮助我的,我会很高兴。

最佳答案

要使用凭据提供程序打开自定义应用程序,有两种方法可以实现。

1) 触发事件 SetSelected from provider credential 时启动应用程序

HRESULT PasswordResetCredential::SetSelected(BOOL* pbAutoLogon)  
{
    *pbAutoLogon = FALSE;  

    system("start C:\\TestStartApp.exe");

    return S_OK;
}

它可能工作正常,但是当屏幕获得壁纸锁定时,它会自动触发事件 SetSelected。这样应用程序将再次重新打开。

2) 创建 CommanLink,然后在 CommandLinkClicked 事件中启动应用程序

HRESULT PasswordResetCredential::CommandLinkClicked(DWORD dwFieldID)
{

    HRESULT hr = S_OK;

    if (dwFieldID < ARRAYSIZE(_rgCredProvFieldDescriptors) && (CPFT_COMMAND_LINK == _rgCredProvFieldDescriptors[dwFieldID].cpft)) {
        system("start C:\\TestStartApp.exe");
    }

    return hr;

}

两者都有效,但可能会给我们的安全带来巨大风险。大多数开发人员不建议以这种方式使用凭据提供程序。我们正在使用虚假的凭据提供程序来打开应用程序。

关于c++ - 如何设置在 Windows 登录屏幕上打开应用程序的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58103368/

相关文章:

c++ - const 引用类成员是否会延长临时对象的生命周期?

C++ : code explanation for method prototype with const = 0

c++ - 如何检查进程是否在 Red Hat Linux 上运行?

windows - OpenCV CVShow图像无法获得焦点

c++ - SWIG C++ 到 Python : Warning(362): operator= ignored

c++ - 如何在 C++ Windows 中包含第三方库?

c - 如何仅使用 ansi-c 在 Windows 计算机上连接 GPIB 设备

c++ - Credential Providers V2 - 提交后添加代码并检查用户密码

c# - Windows凭据提供程序实现

c# - 使用 Windows 7 使用凭据管理器保存密码 (.NET 2.0)