这是我的第一个问题。
我想知道是否有办法在登录屏幕上设置按钮来打开自定义应用程序。
我已经搜索了 Microsoft 文档,然后找到了有关凭据提供程序的信息,但我不想创建 IU 登录名。我只想打开这样的应用程序:
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/