一个解决方案里有一个web项目和一个控制台程序,,,控制台程序运行时会改变自己的一个静态公共变量值,,,我想让web项目打开的时候,可以获得到这个值的改变,来判断那个控制台程序是不是正在运行。就好像一个开关的功能,请问除了写在中间文件和数据库中,还有什么办法可以直接获得到这个值么?

解决方案 »

  1.   

    直接通讯似乎不太好实现, 但是可以"中转"一下, 比如将控制台的变量值写入注册表, 然后web项目再去读取.
      

  2.   

    去公共静态变量基本不可能吧。如果你只想判断程序是否执行可以使用 Process.GetProcessesByName
    Process [] localByName = Process.GetProcessesByName("notepad");
      

  3.   

    判断是否执行
    使用process获取进程
    或使用XML文件获取值
      

  4.   

    string moduleName = Process.GetCurrentProcess().MainModule.ModuleName;
                string processName = System.IO.Path.GetFileNameWithoutExtension(moduleName);
                Process[] processes = Process.GetProcessesByName(processName);
                if (processes.Length > 1)
                {
                    MessageBox.Show("程序已经运行!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
      

  5.   

    都不在一个进程,怎么获取啊,当然可以用ReadProcessMemoryEx这种API,真的如此,还不如多考虑下你的设计是否有问题呢