关于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");
}
}
}

浙公网安备 33010602011771号