GraphWeaver for Visio サンプルプログラム
サンプルプログラムご利用にあたって
    以下の使用条件を遵守して下さい。
  • サンプルプログラムおよび資料のネットワークへの公衆送信、および、雑誌・製品への無許可の添付・複製を禁止します。
  • 当社は、サンプルプログラムおよび資料の使用に付随また関連して発生する損害に関して、一切の責任を負わないものとします。
  • サンプルプログラムおよび資料に、誤字・脱字・位置ずれ等の表記、又、内容に誤りがございましても当社として責任は負わないものとします。
  • サンプルプログラムおよび資料は、予告せずに改良・変更することがあります。
  • サンプルプログラムおよび資料は、動作例・応用例を説明するためのものです。したがってこれらの情報を使用される場合には、使用者の責任においてプログラムを設計してください。これらの使用に付随また関連して発生する損害に関して、当社は一切の責任を負わないものとします。
戻る>> サンプルプログラム
マイクロソフトVisioを、C#プログラムから起動・終了させるサンプルプログラム。 (sample001)
サンプルプログラムsample008
「Visio Start」「Visio End」「End」のボタンを持つフォームから、Visioを起動、終了を行うサンプルです。
詳細に付きましてはVisio2007 SDKに付属する資料等を参考にしてください。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;

using Visio = Microsoft.Office.Interop.Visio;
using Sakura.GW.Lib;
using Sakura.GW.AbstractLayer;
using Sakura.GW.AbstractLayer.Visio;
using Sakura.GW.Visio.Draw;

namespace VisioAddinGW_App
{
    public partial class Form1 : Form
    {

        //Visioアプリケーションハンドル
        public Visio.Application visioApp = null;
        //GraphWeaver管理マネージャ
        GraphWeaverMng visioManager = null;
        //Visio用描画モジュール
        VisioAddInLib_draw visioDrawModule = null;

        public Form1()
        {
            InitializeComponent();
        }

 
        /// 
        /// Visio終了時コールバック関数
        /// 
        public void CallbackVisioClosedFunc()
        {
            //外部からVisioが終了させられたので、ハンドルをnullに設定
            label1.Text = "Visio終了";
            visioApp = null;
        }

        // Visio Start ボタン
        private void button1_Click(object sender, EventArgs e)
        {
            if (visioApp == null)
            {
                visioApp = (Visio.Application)new Microsoft.Office.Interop.Visio.InvisibleAppClass();
                //描画モジュールにVisioのApplicationハンドルを渡してインスタンス作成
                visioDrawModule = new VisioAddInLib_draw(visioApp);
                //管理マネージャに描画モジュールのハンドルを渡してインスタンス作成
                visioManager = new GraphWeaverMng(visioDrawModule);
                //Visio終了時のコールバック登録
                visioManager.VisioClosedFunc += new GraphWeaverMng.callbackVisioClosed(CallbackVisioClosedFunc);
                //Visioウィンドウ表示
                visioApp.Visible = true;

                label1.Text = "Visio開始";
 
                //管理マネージャ起動
                visioManager.start();
            }
        }

        // End ボタン
        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        // FormClose時の処理
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (visioManager != null)
            {
                //管理マネージャ停止
                visioManager.stop();
            }
            //Visioを閉じる
            if (visioApp != null)
            {
                visioApp.Quit();
            }
            try
            {
                //Visioを閉じる
                if (visioApp != null)
                {
                    visioApp.Quit();
                }
            }
            catch (Exception)
            {

            }
         }

        // Visio End ボタン
        private void button3_Click(object sender, EventArgs e)
        {
            if (visioManager != null)
            {
                //管理マネージャ停止
                visioManager.stop();
            }
            //Visioを閉じる
            if (visioApp != null)
            {
                visioApp.Quit();
            }
            try
            {
                //Visioを閉じる
                if (visioApp != null)
                {
                    visioApp.Quit();
                    //visioApp = null;
                }
            }
            catch (Exception)
            {

            }
        }
    }
}
							
戻る>>
GraphWeaver for Visio に関するお問い合せは まで。

※Microsoft及びOffice,Visio,Excell,PowerPointは米国Microsoft Corporationの登録商標です。