出于测试目的,我计划组装一个小应用程序,该应用程序将侦听来自应用程序的特定事件并在此时与其交互。
鉴于我们正处于测试过程中不可能更改应用程序代码的阶段,从我的角度来看,理想的做法是监听应用程序的调试跟踪,有点像 debugview 所做的那样,并做出响应对此。
任何人都可以提供有关如何最好地解决此问题的指导吗?
我发现这样做的方法是使用数据库管理工具来自 Microsoft 的帮助让我可以从运行时访问核心调试信息。我使用的代码的基本形状如下所示:
MDbgEngine mg;
MDbgProcess mgProcess;
try
{
mg = new MDbgEngine();
mgProcess = mg.Attach(debugProcess.Id);
}
catch (Exception ed)
{
Console.WriteLine("Exception attaching to process " + debugProcess.Id );
throw (ed);
}
mgProcess.CorProcess.EnableLogMessages(true);
mgProcess.CorProcess.OnLogMessage += new LogMessageEventHandler(HandleLogMessage);
mg.Options.StopOnLogMessage = true;
mgProcess.Go().WaitOne();
bool running = true;
Console.CancelKeyPress += new ConsoleCancelEventHandler(Console_CancelKeyPress);
while (running)
{
try
{
running =mgProcess.IsAlive;
mgProcess.Go().WaitOne();
}
catch
{
running = false;
}
}
无论如何,它似乎足以满足我的需要,也许它会为其他遇到同样情况的人提供一个有用的模板。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)