我创建了一个 Windows 服务。我正在创建一个事件“测试”。我想使用相同的事件对象由我的应用程序设置/重置。但是我似乎没有通过我的应用程序获取事件对象的句柄。但是可以看到在 BaseNamed 对象中列出的事件。
我想我需要对创建事件的安全属性做一些事情。
我正在我的服务中创建此事件
CreateEvent(NULL, TRUE, FALSE, TEXT("Test"))
并在我的应用程序中使用 OpenEvent。
OpenEvent(EVENT_ALL_ACCESS, TRUE, TEXT("Test"))
请建议我需要进行哪些更改,以便我的应用程序获得处理。
更新
更换后TEXT("Test") with TEXT("Global\\Test")。我仍然没有得到 Event 对象句柄。是的,现在至少它通过错误返回(拒绝访问)识别事件对象的存在。它之前收到错误返回(系统找不到指定的文件)。正如我所说,我认为这里有一些安全方面。这是我发现的:当会话在会话 0 中创建事件时。它不能被我在会话 1 中创建的应用程序继承。为此,在创建事件对象时,我需要指定安全属性结构适当的安全调度员这样做。有人能告诉我怎么做吗?
我想创建一个 16 位 Dos 应用程序,并希望它在我的 32 位 Windows 7 计算机上使用 NTVDM.exe 运行。我该怎么做?我基本上希望我的应用程序通过 NTVDM 执行文件操作,为此我想我首先需要一个 16 位应用程序,还有其他方法吗?