Winapi EnumServicesStatus和Windows 7

Winapi EnumServicesStatus和Windows 7,winapi,Winapi,这些年来,我一直成功地将EnumServicesStatus与OpenScManager(带有SC_MANAGER_ENUMERATE_服务)结合使用,以获得安装在计算机上的服务列表。从NT4到Vista,它一直运行良好 现在,由于某些原因,在Windows7中,我没有得到全部已安装服务的列表,但只得到其中的一小部分。没有错误,只是一个非常不完整的服务列表 Windows7有什么变化吗?我现在是否需要行政权力来列举服务(我希望不是这样)?使用Delphi 2010,但在D2007中使用相同的代码

这些年来,我一直成功地将EnumServicesStatus与OpenScManager(带有SC_MANAGER_ENUMERATE_服务)结合使用,以获得安装在计算机上的服务列表。从NT4到Vista,它一直运行良好

现在,由于某些原因,在Windows7中,我没有得到全部已安装服务的列表,但只得到其中的一小部分。没有错误,只是一个非常不完整的服务列表


Windows7有什么变化吗?我现在是否需要行政权力来列举服务(我希望不是这样)?使用Delphi 2010,但在D2007中使用相同的代码。

我认为这里没有任何变化。这将导致与旧软件的巨大不兼容性。但是D2007使用了ansi版本的ENUM_SERVICE_STATUSA,我认为D2010调用了unicode版本的ENUM_SERVICE_STATUSW。也许您正在对结果进行一些操作,假设在获取Unicode时结果是ANSI?只是猜测。

我认为这里没有什么变化。这将导致与旧软件的巨大不兼容性。但是D2007使用了ansi版本的ENUM_SERVICE_STATUSA,我认为D2010调用了unicode版本的ENUM_SERVICE_STATUSW。也许您正在对结果进行一些操作,假设在获取Unicode时结果是ANSI?只是猜测。

会检查出这一点,但您可能在这里感兴趣。会检查出这一点,但您可能在这里感兴趣。