private static void ReproCase() { Geoprocessor gp = new Geoprocessor { OverwriteOutput = true }; // Instantiate the geoprocessor using the managed assembly. string tbx = GetArcPadExePath().Replace("ArcPad.exe", @"DesktopTools10.0\Toolboxes\ArcPad Tools.tbx"); // Get path to ArcPadTools toolbox. string gdb = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"data\Riverside.gdb"); string axf = gdb.Replace(".gdb", ".axf"); string tool = "ArcPadCheckout_ArcPad"; string feat = string.Join(";", GetFeatures(OpenGeodatabaseWorkspace(gdb), ref gp)); // Get the features in the included gdb. Console.WriteLine("Will attempt to run the {0} tool...\n", tool); try { gp.AddToolbox(tbx); // Add the toolbox IVariantArray parameters = new VarArrayClass(); parameters.Add(feat); // Features parameters.Add(""); // Schema Only parameters.Add(""); // Password parameters.Add(""); // Encrypt parameters.Add(axf); // Axf if (File.Exists(axf)) { File.Delete(axf); // Delete the axf if it exists. Tool will not allow you to overwrite } var result = (IGeoProcessorResult2)gp.Execute(tool, parameters, null); // Execute the gp tool Messages(result); // Display the GP Messages for the successful tool. } catch (Exception e) { Messages(e, ref gp); } // Display the Exception/GP Messages for the failing tool finally { gp.RemoveToolbox(tbx); } }
private static void ArcPad_CheckIn(string axf, string password = "******", string features = "#") { if (_useArcObjects) { if (_useManaged) { const String tool = "ArcPadCheckin_ArcPad"; IVariantArray parameters = new VarArrayClass(); parameters.Add(axf); parameters.Add(password); parameters.Add(features); 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 = "ArcPadCheckin_ArcPad"; IVariantArray parameters = new VarArrayClass(); parameters.Add(axf); parameters.Add(password); parameters.Add(features); try { _msg.Items.Add("Executing GP using IGeoProcessor2 (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.CreateCheckinScript(axf, password, features, _useArcpy); _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' }); } }