/// <summary>
        /// Switch to the main running instance and optionally send data to the main instance.
        /// </summary>
        /// <param name="args">The command line arguments to pass.</param>
        public void SwitchTo(params string[] args)
        {
            var process = GetOtherInstance();

            if (process == null)
            {
                throw new InvalidOperationException("Can't switch to other instance. The current instance is the first instance.");
            }

            // Get the main window and ensure it's running in foreground.
            var mainWindow = new Window(process.MainWindowHandle);

            if (mainWindow.IsMinimized)
            {
                mainWindow.Show(ShowWindow.Restore);
            }
            mainWindow.SetToForeground();

            SendData(args, mainWindow.Handle);
        }
		/// <summary>
		/// Switch to the main running instance and optionally send data to the main instance.
		/// </summary>
		/// <param name="args">The command line arguments to pass.</param>
		public void SwitchTo(params string[] args)
		{
			var process = GetOtherInstance();
			if (process == null)
				throw new InvalidOperationException("Can't switch to other instance. The current instance is the first instance.");

			// Get the main window and ensure it's running in foreground.
			var mainWindow = new Window(process.MainWindowHandle);
			if (mainWindow.IsMinimized)
				mainWindow.Show(ShowWindow.Restore);
			mainWindow.SetToForeground();

			SendData(args, mainWindow.Handle);
		}