private void button_output_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                byte[] byteData;
                try
                {
                    // クリップボードチェック
                    ClipboardManager.OpenClipboard(IntPtr.Zero);
                    IntPtr handle = ClipboardManager.GetClipboardData(576);
                    if (handle == IntPtr.Zero)
                    {
                        System.Windows.MessageBox.Show("RPGツクール2000のデータベースで\r\nアイテムデータをコピーしてから実行してください", "警告");
                        return;
                    }

                    IntPtr pointer = IntPtr.Zero;
                    pointer = ClipboardManager.GlobalLock(handle);
                    if (pointer == IntPtr.Zero)
                    {
                        System.Windows.MessageBox.Show("アイテムデータの読み込みに失敗しました", "エラー");
                        return;
                    }
                    int size = ClipboardManager.GlobalSize(handle);

                    byteData = new byte[size];
                    Marshal.Copy(pointer, byteData, 0, size);

                    ClipboardManager.GlobalUnlock(pointer);
                }
                catch
                {
                    throw;
                }
                finally
                {
                    ClipboardManager.CloseClipboard();
                }

                System.Windows.MessageBox.Show("アイテム画像の出力、コモンイベントの作成を開始します\r\n量が多いと時間が掛かります", "情報");

                List <ItemData> ItemDatas = new List <ItemData>();
                ItemDatas = ByteArrayConverter.Convert(byteData);

                // フォルダ作成
                string        pathName = System.IO.Path.Combine(System.Environment.CurrentDirectory, @"Picture\Menu\Item", @"Name");
                DirectoryInfo di       = new DirectoryInfo(pathName);
                if (di.Exists == false)
                {
                    di.Create();
                }
                string pathDesc = System.IO.Path.Combine(System.Environment.CurrentDirectory, @"Picture\Menu\Item", @"Desc");
                di = new DirectoryInfo(pathDesc);
                if (di.Exists == false)
                {
                    di.Create();
                }

                string systemPicture = textBox_SystemPicture.Text;
                // ピクチャの生成
                for (var i = 0; i < ItemDatas.Count; i++)
                {
                    ItemData item = ItemDatas[i];
                    // ID
                    string id = item.GetIDString();

                    Bitmap bmp;
                    // 名前
                    bmp = BitmapGenerator.CreateBitmapItemName(systemPicture, item);
                    bmp.Save(System.IO.Path.Combine(pathName, id) + ".png");
                    bmp.Dispose();

                    // 説明
                    bmp = BitmapGenerator.CreateBitmapItemDescription(systemPicture, item);
                    bmp.Save(System.IO.Path.Combine(pathDesc, id) + ".png");
                    bmp.Dispose();
                }
                // TKCodeの生成
                CommonEventGenerator.CodeToClipboard(ItemDatas);

                System.Windows.MessageBox.Show("コンバートが完了しました\r\nコモンイベント「" + CommonEventGenerator.CommonNumberStart.ToString() + "」に貼り付けてください", "情報");
            }
            catch (Exception ex)
            {
                System.Windows.MessageBox.Show(ex.Message, "エラー");
            }
            finally
            {
                //this.Close();
                ClipboardManager.CloseClipboard();
            }
        }
        private void button_outputCSV_Click(object sender, RoutedEventArgs e)
        {
            byte[] byteData;
            try
            {
                // クリップボードチェック
                ClipboardManager.OpenClipboard(IntPtr.Zero);
                IntPtr handle = ClipboardManager.GetClipboardData(576);
                if (handle == IntPtr.Zero)
                {
                    System.Windows.MessageBox.Show("RPGツクール2000のデータベースで\r\nアイテムデータをコピーしてから実行してください", "警告");
                    return;
                }

                IntPtr pointer = IntPtr.Zero;
                pointer = ClipboardManager.GlobalLock(handle);
                if (pointer == IntPtr.Zero)
                {
                    System.Windows.MessageBox.Show("アイテムデータの読み込みに失敗しました", "エラー");
                    return;
                }
                int size = ClipboardManager.GlobalSize(handle);

                byteData = new byte[size];
                Marshal.Copy(pointer, byteData, 0, size);

                ClipboardManager.GlobalUnlock(pointer);
            }
            catch
            {
                throw;
            }
            finally
            {
                ClipboardManager.CloseClipboard();
            }

            System.Windows.MessageBox.Show("アイテム情報の出力を開始します\r\n量が多いと時間が掛かります", "情報");

            List <ItemData> ItemDatas = new List <ItemData>();

            ItemDatas = ByteArrayConverter.Convert(byteData);

            // フォルダ作成
            string path = System.IO.Path.Combine(System.Environment.CurrentDirectory, @"ItemInfo.csv");
            {
                FileInfo      fi = new FileInfo(path);
                DirectoryInfo di = fi.Directory;
                if (di.Exists == false)
                {
                    di.Create();
                }
            }

            // csv文字列生成
            string       str  = "番号,名前,種別,攻撃,防御,魔力,精神,性能合計,値段,説明";
            StreamWriter file = new StreamWriter(path, false, Encoding.GetEncoding("Shift_JIS"));

            file.WriteLine(str);
            for (var i = 0; i < ItemDatas.Count; i++)
            {
                ItemData data = ItemDatas[i];
                str  = "";
                str += data.Number + ",";
                str += "\"" + data.Name + "\"" + ",";
                string typeName = "";
                switch (data.Type)
                {
                case 0: typeName = "\"通常物品\""; break;

                case 1: typeName = "\"武器\""; break;

                case 2: typeName = "\"盾\""; break;

                case 3: typeName = "\"防具\""; break;

                case 4: typeName = "\"兜\""; break;

                case 5: typeName = "\"装飾\""; break;

                case 6: typeName = "\"薬\""; break;

                case 7: typeName = "\"本\""; break;

                case 8: typeName = "\"種\""; break;

                case 9: typeName = "\"特殊\""; break;

                case 10: typeName = "\"スイッチ\""; break;
                }

                str += typeName + ",";
                str += data.ATK.ToString() + ",";
                str += data.DEF.ToString() + ",";
                str += data.MAT.ToString() + ",";
                str += data.MDF.ToString() + ",";
                str += (data.ATK + data.DEF + data.MAT + data.MDF).ToString() + ",";
                str += data.Price.ToString() + ",";
                str += "\"" + data.Description + "\"";
                file.WriteLine(str);
            }
            file.Close();

            System.Windows.MessageBox.Show("CSV出力が完了しました", "情報");
        }