private static void ArcPad_CheckOut(string[] features, string axf, string schemaOnly = "#", string password = "******", string encrypt = "#") { if (_useArcObjects) { if (_useManaged) { const String tool = "ArcPadCheckout_ArcPad"; IVariantArray parameters = new VarArrayClass(); parameters.Add(string.Join(";", features)); parameters.Add(schemaOnly); parameters.Add(password); parameters.Add(encrypt); parameters.Add(axf); if (File.Exists(axf)) { File.Delete(axf); } try { _msg.Items.Add("Executing GP using Geoprocessor (Managed) class in ArcObjects"); //_gpManaged.AddToolbox(MiscClass.ArcPadTbxPath); //_msg.Items.Add("Adding Toolbox ..\\" + MiscClass.SimplifyPath(MiscClass.ArcPadTbxPath, 4)); _msg.Refresh(); var pResult = (IGeoProcessorResult2)_gpManaged.Execute(tool, parameters, null); Messages(pResult); } catch (Exception ex) { Messages(ex, ref _gpManaged); } finally { _gpManaged.ClearMessages(); //_gpManaged.RemoveToolbox(MiscClass.ArcPadTbxPath); } parameters.RemoveAll(); } else { const String tool = "ArcPadCheckout_ArcPad"; IVariantArray parameters = new VarArrayClass(); parameters.Add(string.Join(";", features)); parameters.Add(schemaOnly); parameters.Add(password); parameters.Add(encrypt); parameters.Add(axf); if (File.Exists(axf)) { File.Delete(axf); } try { _msg.Items.Add("Executing GP using IGeoProcessor (Un-Managed) class in ArcObjects"); //_gpUnManaged.AddToolbox(MiscClass.ArcPadTbxPath); //_msg.Items.Add("Adding Toolbox ..\\" + MiscClass.SimplifyPath(MiscClass.ArcPadTbxPath, 4)); _msg.Refresh(); var pResult = (IGeoProcessorResult2)_gpUnManaged.Execute(tool, parameters, null); Messages(pResult); } catch (Exception ex) { Messages(ex, ref _gpUnManaged); } finally { _gpUnManaged.ClearMessages(); //_gpUnManaged.RemoveToolbox(MiscClass.ArcPadTbxPath); } parameters.RemoveAll(); } } else { string pyPath = MiscClass.CreateCheckoutScript(features, axf, schemaOnly, password, encrypt, _useArcpy); if (File.Exists(axf)) { File.Delete(axf); } _msg.Items.Add("Executing GP using " + ((_useArcpy) ? "arcpy" : "arcgisscripting") + " class in Python"); _msg.Refresh(); string command = string.Format("\"{0}\"", pyPath); string message = MiscClass.ExecuteCommand(command); if (message == string.Empty) { _msg.Items.Add("Unhandled exception during execution. Most likely python exe crashed."); } Messages(message, new[] { '\r', '\n' }); } }