工作的时候,和同事是用net send来联系的,但是这有个问题,就是如果来信息的时候,我正在打字,偏巧又按了回车,那么是谁给我发的什么信息,就看不到了,有没有办法可以把net send的信息拦截下来?尽量用.net来写。。

解决方案 »

  1.   

    应该可以截取cmd里面得内容得吧。
    Process proc = new Process();
    try
    {
    proc.StartInfo.FileName="cmd.exe";
    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.RedirectStandardInput = true;
    proc.StartInfo.RedirectStandardOutput = true;
    proc.StartInfo.RedirectStandardError = true;
    proc.StartInfo.CreateNoWindow = true;
    proc.Start(); string pingResult = proc.StandardOutput.ReadToEnd();
        
    if (pingResult.IndexOf("收到信息时候特定字符") != -1)
    {
    //取出来显示
    }}
    catch (Exception ex)
    {
    }至于侦测得时间间隔你在设置一下,线程关闭再处理一下,不知道这样可行不。
      

  2.   

    这样,我感觉不太合适。。因为我是想获得接收到的数据,而NET SEND接收到数据后,是弹出对话框的,我不想让它弹对话框,并且把信息记录到某个文件里。
    用Process到是可以控制进程,但问题是net send的服务Messenger的进程是哪个我不知道,看服务管理器里,它是运行的services.exe,很多服务都是用他启动起来的,但是服务具体的进程是什么不知道,或者这些服务都是作为某个进程的模块来运行的?
    而且我想了,net send的数据接收,应该是windows级别的事件,如果能够把windows的事件都挨个检查一遍,可能有办法。。但是windows的事件怎么获得,我不知道了,看完全部的的类库,似乎也没有相关的类,好象得用C++或者调用winapi?那玩意俺不会。。
      

  3.   

    顶一下,不行用C++或调用winapi,不过我不会用,会同的同人把代码做个事例放上来也成