1

当我启动我的 Windows 8.1 笔记本电脑时,我想在 Windows 登录屏幕上显示一条消息,以便我知道所有服务和启动过程何时启动。除了等待几分钟之外,假设所有可以启动的服务都已经这样做了,我如何编写一个流程来查询“启动完成”条件,然后更新 UI?

使用组策略启动脚本或在某些“服务已启动”条件下触发的任务计划程序例程是否可以检测到启动完成?我应该在事件日志中查找特定消息吗?

要向登录屏幕发送消息,我猜我需要编写一个 Windows 凭据提供程序,作为 C# 开发人员,我相信我应该看看 PGina?

在我从头开始编写代码之前,是否已经有一个固定的解决方案可以解决这个问题?

我目前正在寻找将消息添加到登录屏幕 Windows 7,通过更新注册表项,我应该能够警告登录是否安全......一旦我知道如何确定这种情况。


[编辑] 删除了大量不相关的文本,并说明我为什么要这样做。希望回答一个简洁而有针对性的问题。

4

1 回答 1

1

是的,您需要使用凭据提供程序 (CP)。我更熟悉 C++ 和 Credential Provider V1,所以下面的术语来自那里。您可以轻松找到等效的 C# 代码或使用本机互操作。

服务检查需要在 CP 的 SetSelected 方法中进行。

你有两个选择——

  1. 如果您正在等待 Windows 服务,请使用服务控制管理器将状态查询为“已启动”。

  2. 如果您正在等待自己的服务,请为每个服务添加“就绪”事件并从那里触发 SetEvent。在 Credential Provider 端,按顺序对每个服务使用 WaitForSingleObject。某些服务很可能会先于其他服务启动。没关系。但是,如果您需要在每个服务启动时显示一个指示 UI,您可以在循环中使用 WaitForMultipleObjects 并继续删除收到信号的事件句柄。

于 2016-01-17T00:19:37.373 回答