![]() |
1
3
部分解决这个问题的一种方法是编写一个屏幕保护程序,它可以对服务进行消息轮询。服务必须在启动时运行(不是在登录时运行-因为您可能还没有任何人登录!). 屏幕保护程序必须设置为登录屏幕保护程序和用户的屏幕保护程序,您需要在登录屏幕上设置短屏幕保护程序超时(我不知道这有多简单)。 这不会让您在登录屏幕上弹出消息,但如果登录屏幕空闲足够长时间,它将进入屏幕保护程序,屏幕保护程序可以显示消息。 我对运行屏幕保护程序的环境一点也不熟悉,所以我不知道它们有多少访问权限。我假设他们可以在本地机器上打开一个管道或共享内存段,这足以完成任务。 |
![]() |
2
3
我知道应用程序可以在登录屏幕上弹出UI的唯一方法是,如果它们使用mb_servicenotification标志调用MessageBox API。该标志用于系统关键消息中,以提醒控制台用户发生了严重错误,因此即使机器被锁定,它也会显示出来。 这不是一个对话框,它只是一个消息框,因此不存在与消息框相关的真正安全风险。 使这变得复杂的是,Windows95和WindowsNT对两个标志使用了相同的值-mb_Topmost和mb_ServiceNotification。因此,如果您运行的是专为Windows 95设计的程序,您可能会设置mb_最上面的标志,并在Windows XP(及更高版本)上运行时意外获得mb_服务通知行为。您可以在winuser.h中的mb_servicenotification标志的定义中看到:
|
![]() |
3
1
简单地说,不,没有。 |
![]() |
4
1
如果您未登录或计算机处于屏幕保护程序模式,则程序(例如服务)可以运行,但它无法与屏幕交互。例如,如果你想提醒某人某件事,你可以向另一个设备发送电子邮件/sms/http帖子。 |
![]() |
Mear1628 · vb.net从随机选择的端口号接收UDP 6 月前 |
![]() |
user1946932 · .Net正则表达式在所有字符前添加空格 7 月前 |
![]() |
user1946932 · 正则表达式:删除连续两个以上的<br>? 1 年前 |
|
Josh · 通过反思访问孩子的财产 1 年前 |
![]() |
Khu RJ · 更新网格中的单元格-DevExpress网格控件 1 年前 |
![]() |
Mick · VB.NET Regex。替换不起作用(数组未更新) 1 年前 |