是否有一种方法以编程方式检测当前Windows /用户上是否存在LogMeIn会话?
我尝试过几种方法(在C#中,但语言是不相关的):
IO Write Bytes/s或IO Data Bytes/s of LogMeIn。这只在一开始起作用。如果会话时间超过一分钟,这些性能计数器不会记录任何活动,即使LogMeIn仍然有网络流量。有什么暗示吗?
发布于 2014-05-27 08:56:48
通过拦截ETW的痕迹解决了这个问题:
var logmeinProcess = System.Diagnostics.Process.GetProcessesByName("LogMeIn").Single();
using (var session = new TraceEventSession("MyRealTimeSession")) // Create a session to listen for events
{
session.EnableKernelProvider(Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.NetworkTCPIP);
session.Source.Kernel.UdpIpSend += (data) =>
{
if (data.ProcessID == logmeinProcess.Id)
{
lock (_logMeInUdpQueue)
{
_logMeInUdpQueue.Enqueue(DateTime.UtcNow);
}
}
};
session.Source.Process();
}这样,我就可以通过LogMeIn进程获得UDP发送的数量,这对于检测LogMeIn会话来说是非常完美的。
https://stackoverflow.com/questions/23882987
复制相似问题