XMLSpy API

Application Startup and Shutdown

Home Prev Top Next

In the code snippets below, the methods StartXMLSpy_Click and ShutdownXMLSpy_Click are those assigned to buttons in the AutomateXMLSpy example that, respectively, start up and shut down the application. This example is located in the C# subfolder of the API Examples folder (see the file Form1.cs):

 

Windows 7, Windows 8, Windows 10, Windows 11

C:\Users\<username>\Documents\Altova\XMLSpy2026\Examples

 

You can compile and run the project from within Visual Studio 2013, 2015, 2017, 2019, 2022, 2026 Insiders.

 

Starting XMLSpy

The following code snippet from the AutomateXMLSpy example shows how to start up the application.

 

  // Handler for the "Start XMLSpy" button

       private void StartXMLSpy_Click(object sender, EventArgs e)

       {

           if (XMLSpy == null)

           {

               Cursor.Current = Cursors.WaitCursor;

 

               // If no XMLSpy instance is running, we create one and make it visible

               XMLSpy = new XMLSpyLib.Application();

               XMLSpy.Visible = true;

 

               Cursor.Current = Cursors.Default;

           }

           else

           {

               // If an instance of XMLSpy is already running, make sure it's visible

               if (!XMLSpy.Visible)

                   XMLSpy.Visible = true;

           }

       }

 

Shutting down XMLSpy

The following code snippet from the AutomateXMLSpy example shows how to shut down the application.

 

 // Handler for the "Shutdown XMLSpy" button

      // Shut down the application instance by explicitly releasing the COM object

       private void shutdownXMLSpy_Click(object sender, EventArgs e)

       {

           if (XMLSpy != null)

           {

               // Allow shutdown of XMLSpy by releasing the UI

               XMLSpy.Visible = false;

 

               // Explicitly release COM object

               try

               {

                   while (System.Runtime.InteropServices.Marshal.ReleaseComObject(XMLSpy) > 0) ;

               }

               finally

               {

                   // Disallow subsequent access to this object

                   XMLSpy = null;

               }

           }

       }

 

© 2019-2025 Altova GmbH