关于X64程序对X86程序依赖的一个案例-第三篇

在64位的客户端这不,建立了同样的类型去收发消息,完成通信。

  TwainClient:启动X86程序,建立自己的管道对象

  TwainClientReceiver:接收从Server那边传回的消息

  TwainClientSender:传递消息给Server,让起完成对扫描仪的驱动

 TwainClient:

namespace Common.Util
{
    public class TwainClient
    {
        private  Process serverExe;

        public  Form _form;
        public static TwainClient _instance;
        private TwainClient(Form form)
        {
            _form = form;
        }

        public static TwainClient GetInstance(Form form)
        {
            return _instance ?? (_instance = new TwainClient(form));
        }

        public void startScannerServer(string exe)
        {
            Process[] existingProcesses = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(exe));
            foreach (Process process in existingProcesses)
            {
                // 杀死存在的同名进程
                process.Kill();
                process.WaitForExit(); // 等待进程完全退出
            }

            if (serverExe == null)
            {
                serverExe = new Process
                {
                    StartInfo = new ProcessStartInfo
                    {
                        FileName = exe,
                        UseShellExecute = false,
                        RedirectStandardOutput = true,
                        CreateNoWindow = true
                    }
                };
            }
            serverExe.Start();


            TwainClientSender.Instance.Start("ScannerOpenerator");
            TwainClientReceiver.Instance.Start("ScannerListener", _form);
        }

        public  void stopScannerServer()
        {
            TwainClientSender.Instance.SendMessages(0,"EXIT");            
        }
     
    }
}

  

posted @ 2025-07-08 19:18  Wind_Swing_Dunn  阅读(6)  评论(0)    收藏  举报