windows-vista - 您如何在 Windows Vista session 0 和桌面之间进行通信?

标签 windows-vista ipc

在 Vista 之前的早期版本的 Windows 中,您可以让 Windows 服务与当前登录的桌面用户进行交互,以便在服务的屏幕上轻松显示信息。在 Windows Vista 中,为安全起见,添加了 session 0,以将服务与桌面隔离。在服务和在 Session 0 之外运行的应用程序之间进行通信的简单方法是什么?到目前为止,我已经通过使用 TCP/IP 在两者之间进行通信来解决这个问题,但这似乎是一种草率的方式。

最佳答案

您也可以使用共享内存或命名管道来促进 IPC。从概念上讲,这类似于 TCP/IP,但您不必担心找到未使用的端口。

您必须确保您创建的命名对象以“Global\”为前缀,以允许所有 session 访问它们,如 here 所述。 .

AFAIK 服务无法再直接与桌面交互。

关于windows-vista - 您如何在 Windows Vista session 0 和桌面之间进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55639/

相关文章:

windows-vista - 以编程方式禁用UAC

visual-studio-2008 - 如何让 F12 进入带有 VS 2008 的 Vista x64 上的调试器?

c# - Vista家长控制导致套接字异常?

delphi - (保存对话框) 如何在 Vista/Win7 中更改文件过滤器时自动更改文件扩展名?

c - 第二个 shmget 总是返回拒绝访问

c++ - RPC 身份验证

c - 共享内存中的指针

java - 尝试运行我的 java swing 应用程序时,Win Vista 上缺少 msvcr71.dll 文件

c++ - 消息队列中的accept() IPC UNIX

没有 JNI 的 Java C++