我不知道出于安全原因这是否可能,但可能是。
我在我们的一个应用程序中发现了一个问题,解决它的方法是在进程内模块上调用公共方法。
因此,我的应用程序(我无法修改)正在使用一个名为“SSOSettingsFileReader.dll”的引用 dll,在 SSOSettingsFileReader.dll 中是一个名为“ClearCache”的公共方法。我想编写一个控制台应用程序,循环遍历所有进程,在每个名为 SSOSettingsFileReader 的进程中搜索模块并在每个进程上调用“ClearCache”。
这可能吗?
到目前为止,我可以得到模块:
Process[] processes = Process.GetProcesses();
foreach (Process p in processes) {
if (p.ProcessName == "BTSNTSvc") {
ProcessModuleCollection modules = p.Modules;
foreach (ProcessModule m in modules) {
if (m.ModuleName == "SSOSettingsFileReader.dll") {
// What to do here?
// SSOSettingsFileReader sso = SomeWayToConvertModule(m)ToSSOSettingsFileReader();
// sso.ClearCache();
}
}
}
}
谢谢
ps 我正在使用 .Net2.0 的 VS2005 但不限于此