我问这个问题,因为事实证明在Delphi中编写一个能够从Logon屏幕运行的屏幕保护程序应用程序有一些困难.
请参阅问题:Delphi中的Windows 7登录屏幕保护程序
我已经将问题(或至少一个问题)缩小到特定的Win API调用CreateEvent.
SyncEvent := CreateEvent(nil, True, False, '');
if SyncEvent = 0 then
RaiseLastOSError;
Run Code Online (Sandbox Code Playgroud)
此代码仅在从登录屏幕调用时失败.并且GetLastError返回拒绝访问.很明显,登录屏幕上的安全限制阻止CreateEvent(nil, True, False, '');了根据需要创建事件.
(我真的不知道一个事件如何成为可利用的安全风险.)
所以,问题是:是否可以从登录屏幕创建一个事件?大概通过以下任一方式:
lpEventAttributes尽管在Delphi中遇到了这个问题,但这更多是关于Win API.所以请用您选择的语言自由回答.