gpt4 book ai didi

Delphi 和 Windows 登录事件

转载 作者:行者123 更新时间:2023-12-02 08:36:36 26 4
gpt4 key购买 nike

我想知道如何在delphi windows服务中接收windows登录和注销事件。服务本身已经构建,现在我想显示一个打开设置/日志窗口的系统托盘图标。要显示该图标,我需要知道用户是否已登录...

我看过一些关于c#的“系统事件通知服务”的信息,但是关于delphi的信息很少。

最佳答案

由于用户 session 基于 RDS(Remote Desktop Services - 以前的终端服务)技术,您可以尝试 WTSRegisterSessionNotification/WTSRegisterSessionNotificationEx蜜蜂。 They give you information about various events像:

  • WTS_SESSION_LOGON
  • WTS_SESSION_LOGOFF
  • WTS_REMOTE_CONNECT
  • WTS_REMOTE_DISCONNECT
  • WTS_CONSOLE_CONNECT
  • WTS_CONSOLE_DISCONNECT 等

根据事件,您可以找到用户的 session ID。然后您可以在此特定 session 中启动一个进程(即 inject a program to a specific RDS session )。例如,您可以在用户 session 中启动一个显示您的图标的进程。该进程可以通过命名管道、内存映射文件等与您的服务进行通信。

就我个人而言,当用户从 session 断开连接时(即停止更新标签、列表框、备忘录等),我会使用这些事件来停止 GUI 密集型工作

** 这些 API 需要有一个接收通知的窗口。 In a service you need to create a hidden one with a message loop (another topic)

关于Delphi 和 Windows 登录事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15969389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com