我有一个 Windows 服务,它定期检查许多其他进程并将它们的信息报告回一个中心位置。
我想提取这些进程可能正在使用的任何环境变量。我目前正在使用一些 DllImport 语句(例如http://www.dreamincode.net/forums/blog/143/entry-2686-working-with-environment-variables-in-c%23/)执行此操作,它有效大多数情况下都很好。
但是,这似乎只有在 Windows 服务及其分析的进程都由同一用户运行时才有效。如果 windows 服务以“user1”身份运行,进程以“user2”身份运行,则无法检查其环境变量。
是否有人知道获取这些环境变量的更清洁方法(不更改底层应用程序),或合适的解决方法?