123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- 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();
- }
- 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;
- }
- internal static void CloseExtenderWrapper()
- {
- Process[] processes = Process.GetProcessesByName("OxfordExtenderWrapper");
-
- if (processes.Length!=0)
- {
- processes[0].Kill();
-
- }
- }
- }
- }
|