using ESRI.ArcGIS.Carto; using KGIS.Framework.AE.GPHelper; //using IDEParameter; using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace KDataCheck { public class GPHelper { public static GPHelper Instance { get; } = new GPHelper(); public GPHelper() { } public string ExeProces(string pDataPath, string pOutDbPath, string pType) { string result = string.Empty; //Byte[] toEncryptArray = Encoding.UTF8.GetBytes(arg); //string strParm = Convert.ToBase64String(toEncryptArray); //Console.WriteLine(strParm); var psi = new ProcessStartInfo("GPHelper.exe", $"{pDataPath} {pOutDbPath} {pType}"); psi.UseShellExecute = false; psi.CreateNoWindow = true; psi.RedirectStandardError = true; psi.RedirectStandardInput = true; psi.RedirectStandardOutput = true; var pes = Process.Start(psi); var sbuffer = new StringBuilder(); var sout = pes.StandardOutput; while (!sout.EndOfStream) { result = sout.ReadLine(); if (String.IsNullOrEmpty(result)) continue; sbuffer.AppendLine(result); } pes.WaitForExit(); pes.Close(); String res = sbuffer.ToString(); sbuffer.Clear(); //Console.WriteLine(res); return result; } public void ExeGPForProces(string pDataPath, string pOutDbPath, string pProcesType = "") { string outPath = string.Empty; try { outPath = ExeProces(pDataPath, pOutDbPath, pProcesType); } catch (Exception ex) { Console.WriteLine(outPath); Console.WriteLine(ex.Message); } } public string ExeProces(string pDataPath, string pType) { string result = string.Empty; Byte[] toEncryptArray = Encoding.UTF8.GetBytes(pDataPath); string strParm = Convert.ToBase64String(toEncryptArray); //Console.WriteLine(strParm); var psi = new ProcessStartInfo("GPHelper.exe", strParm); psi.UseShellExecute = false; psi.CreateNoWindow = true; psi.RedirectStandardError = true; psi.RedirectStandardInput = true; psi.RedirectStandardOutput = true; var pes = Process.Start(psi); var sbuffer = new StringBuilder(); var sout = pes.StandardOutput; while (!sout.EndOfStream) { result = sout.ReadLine(); //if (result == "Close") //{ // pes.Close(); // return result; //} if (String.IsNullOrEmpty(result)) continue; sbuffer.AppendLine(result); } pes.WaitForExit(); pes.Close(); String res = sbuffer.ToString(); sbuffer.Clear(); //Console.WriteLine(res); return result; } public void ExeGPForProces(string pDataPath, string pProcesType = "") { string outPath = string.Empty; try { outPath = ExeProces(pDataPath, pProcesType); } catch (Exception ex) { Console.WriteLine(outPath); Console.WriteLine(ex.Message); } } } }