12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- using OxfordExtenderWrapper;
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Linq;
- using System.Runtime.Remoting.Channels;
- using System.Runtime.Remoting.Channels.Ipc;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace OTSMeasureApp.ServiceCenter.OxfordExtender
- {
- static class ExtenderWrapperIpc
- {
- static ExtenderIpcUI extenderRemoteObj =null;
-
- public static ExtenderIpcUI GetExtenderWrapper()
- {
- if (extenderRemoteObj == null)
- {
- Process[] processes = Process.GetProcessesByName("OxfordExtenderWrapper");
- System.Diagnostics.Process p;
- if (processes.Length == 0)
- {
- p = System.Diagnostics.Process.Start(Application.StartupPath + "\\OxfordExtender\\OxfordExtenderWrapper.exe", "hide");
- Thread.Sleep(800);
- IpcClientChannel channel = new IpcClientChannel();
- //Register the channel with ChannelServices.
- ChannelServices.RegisterChannel(channel, false);
- extenderRemoteObj = (ExtenderIpcUI)Activator.GetObject(typeof(ExtenderIpcUI), "ipc://ExtenderServerChannel/ExtenderIpcUI");
- //extenderRemoteObj.ConnectToEDSHardware();
- return extenderRemoteObj;
- }
- else
- {
- IpcClientChannel channel = new IpcClientChannel();
- //Register the channel with ChannelServices.
- ChannelServices.RegisterChannel(channel, false);
- extenderRemoteObj = (ExtenderIpcUI)Activator.GetObject(typeof(ExtenderIpcUI), "ipc://ExtenderServerChannel/ExtenderIpcUI");
- //extenderRemoteObj.ConnectToEDSHardware();
- return extenderRemoteObj;
- }
-
-
- }
- extenderRemoteObj.ConnectToEDSHardware();//reconnect ,prevent the connection be closed by other reason accidentally.
- return extenderRemoteObj;
- }
- internal static void KillExtenderWrapperProcess()
- {
- Process[] processes = Process.GetProcessesByName("OxfordExtenderWrapper");
- //if (processes.Length!=0)
- //{
- // processes[0].Kill();
- //}
- extenderRemoteObj.CloseExtender();
- }
- }
- }
|