我有一个在Winforms应用程序中使用的代码。 Windows服务中也使用相同的代码(作为Windows服务运行的exe)。代码抓取ICON的句柄。但我发现,在Task Mangaer(和GDI View)中,当我运行Winforms应用程序时,应用程序会显示GDI计数。但是,当我通过Windows服务运行代码时,任务管理器中的服务实例未显示任何GDI计数。那么,这是否意味着Windows服务永远不能拥有GDI句柄?如果是这样,代码如何工作,即在句柄上运行的代码实际上如何在Windows服务中工作。
答案 0 :(得分:1)
服务实际上能够以与普通应用程序完全相同的方式创建和使用GDI句柄,除了显示表面对用户不可见。
但是,任务管理器只能查询其运行are in the same session的进程的此信息,services always run in a separate session.
所以,基本上,只是一个误报。 : - )