プロジェクト

全般

プロフィール

リビジョン 41

堀内ほぼ8年前に追加

旧自動更新ソース

差分を表示:

trunk/src/UpDateCopy/UpDateCopy/App.config
1
<?xml version="1.0" encoding="utf-8" ?>
2
<configuration>
3
    <startup> 
4
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
5
    </startup>
6
</configuration>
trunk/src/UpDateCopy/UpDateCopy/ClsCommon.cs
1
using System;
2
using System.Collections.Generic;
3
using System.IO;
4
using System.Linq;
5
using System.Security.Cryptography;
6
using System.Text;
7
using System.Threading.Tasks;
8

  
9
namespace UpDateCopy
10
{
11
    public static class ClsCommon
12
    {
13
        #region 定数
14

  
15
        /// <summary>
16
        /// 監視対象プロセス名
17
        /// </summary>
18
        public const string s_TargetProcess = "現場監督秘書";
19
        /// <summary>
20
        /// パスを定数で定義する
21
        /// </summary>
22
        public const string s_UPDATE_FILE_PATH = @"Z:\52GenbaKantokuHisyo";
23
        //public const string s_UPDATE_FILE_PATH = @"Z:\5-2現場監督秘書";
24
        //private const string s_UPDATE_FILE_PATH = @"Z:\⑤IT事業部用\Debug";
25

  
26
        /// <summary>
27
        /// エラーログファイル
28
        /// </summary>
29
        public const string s_ErrorFileName = @".\log\Error.txt";
30

  
31
        #endregion
32

  
33
        /// <summary>
34
        /// エラー時ログファイル出力
35
        /// </summary>
36
        /// <param name="message"></param>
37
        public static void ErrorLogWrite(string message)
38
        {
39
            try
40
            {
41
                // ディレクトリの確認
42
                int spoint = ClsCommon.s_ErrorFileName.LastIndexOf("\\") + 1;
43
                string path = ClsCommon.s_ErrorFileName.Substring(spoint);
44
                if (Directory.Exists(@path))
45
                    Directory.CreateDirectory(@path);
46
                // ログ書込み
47
                StreamWriter writer = new StreamWriter(@ClsCommon.s_ErrorFileName, true, Encoding.GetEncoding("Shift_JIS"));
48
                writer.WriteLine("Error={0}:{1}", DateTime.Now.ToLongTimeString(), message);
49
                writer.Close();
50
            }
51
            catch
52
            {
53

  
54
            }
55
        }
56
        /// ファイルパスよりmd5のハッシュ値を返す
57
        /// </summary>
58
        /// <param name="FilePath"></param>
59
        /// <returns></returns>
60
        public static string GetFileHashData(string FilePath)
61
        {
62
            try
63
            {
64
                //ファイルを開く
65
                FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read);
66

  
67
                //MD5CryptoServiceProviderオブジェクトを作成
68
                MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
69

  
70
                //ハッシュ値を計算する
71
                byte[] bs = md5.ComputeHash(fs);
72

  
73
                //リソースを解放する
74
                md5.Clear();
75
                //ファイルを閉じる
76
                fs.Close();
77

  
78
                return BitConverter.ToString(bs).ToLower().Replace("-", "");
79

  
80
            }
81
            catch (Exception ex)
82
            {
83
                ErrorLogWrite(ex.Message.ToString());
84
                return string.Empty;
85
            }
86
        }
87
        /// <summary>
88
        /// ファイルの時間を取得する
89
        /// </summary>
90
        /// <param name="FilePath">ファイルパス</param>
91
        /// <param name="flg">取得日付フラグ</param>
92
        /// <returns></returns>
93
        public static DateTime GetFileTimeStamp(string FilePath, char flg)
94
        {
95
            try
96
            {
97
                DateTime dtDateTime = DateTime.MinValue;
98

  
99
                if (flg == 'C')
100
                {
101
                    // 作成日時を取得する
102
                    dtDateTime = File.GetCreationTime(@FilePath);
103
                }
104
                else if (flg == 'U')
105
                {
106
                    // 更新日時を取得する
107
                    dtDateTime = File.GetLastWriteTime(@FilePath);
108
                }
109
                else if (flg == 'A')
110
                {
111
                    // アクセス日時を取得する
112
                    dtDateTime = File.GetLastAccessTime(@FilePath);
113
                }
114

  
115
                return dtDateTime;
116
            }
117
            catch (Exception ex)
118
            {
119
                ErrorLogWrite(ex.Message.ToString());
120
                return DateTime.Now;
121
            }
122
        }
123
    }
124
}
trunk/src/UpDateCopy/UpDateCopy/FrmCopy.Designer.cs
1
namespace UpDateCopy
2
{
3
    partial class FrmCopy
4
    {
5
        /// <summary>
6
        /// 必要なデザイナー変数です。
7
        /// </summary>
8
        private System.ComponentModel.IContainer components = null;
9

  
10
        /// <summary>
11
        /// 使用中のリソースをすべてクリーンアップします。
12
        /// </summary>
13
        /// <param name="disposing">マネージ リソースが破棄される場合 true、破棄されない場合は false です。</param>
14
        protected override void Dispose(bool disposing)
15
        {
16
            if (disposing && (components != null))
17
            {
18
                components.Dispose();
19
            }
20
            base.Dispose(disposing);
21
        }
22

  
23
        #region Windows フォーム デザイナーで生成されたコード
24

  
25
        /// <summary>
26
        /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
27
        /// コード エディターで変更しないでください。
28
        /// </summary>
29
        private void InitializeComponent()
30
        {
31
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmCopy));
32
            this.progressBar = new System.Windows.Forms.ProgressBar();
33
            this.lblMessage = new System.Windows.Forms.Label();
34
            this.SuspendLayout();
35
            // 
36
            // progressBar
37
            // 
38
            this.progressBar.Location = new System.Drawing.Point(12, 209);
39
            this.progressBar.Name = "progressBar";
40
            this.progressBar.Size = new System.Drawing.Size(610, 54);
41
            this.progressBar.TabIndex = 0;
42
            // 
43
            // lblMessage
44
            // 
45
            this.lblMessage.BackColor = System.Drawing.Color.White;
46
            this.lblMessage.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
47
            this.lblMessage.Font = new System.Drawing.Font("MS 明朝", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
48
            this.lblMessage.Location = new System.Drawing.Point(12, 27);
49
            this.lblMessage.Name = "lblMessage";
50
            this.lblMessage.Size = new System.Drawing.Size(610, 169);
51
            this.lblMessage.TabIndex = 1;
52
            this.lblMessage.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
53
            // 
54
            // FrmCopy
55
            // 
56
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
57
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
58
            this.ClientSize = new System.Drawing.Size(634, 275);
59
            this.Controls.Add(this.lblMessage);
60
            this.Controls.Add(this.progressBar);
61
            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
62
            this.MaximizeBox = false;
63
            this.MinimizeBox = false;
64
            this.Name = "FrmCopy";
65
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
66
            this.Text = "プログラム更新";
67
            this.Load += new System.EventHandler(this.FrmCopy_Load);
68
            this.Shown += new System.EventHandler(this.FrmCopy_Shown);
69
            this.ResumeLayout(false);
70

  
71
        }
72

  
73
        #endregion
74

  
75
        private System.Windows.Forms.ProgressBar progressBar;
76
        private System.Windows.Forms.Label lblMessage;
77
    }
78
}
79

  
trunk/src/UpDateCopy/UpDateCopy/FrmCopy.cs
1
using System;
2
using System.Collections;
3
using System.Collections.Generic;
4
using System.ComponentModel;
5
using System.Data;
6
using System.Diagnostics;
7
using System.Drawing;
8
using System.IO;
9
using System.Linq;
10
using System.Security.Cryptography;
11
using System.Text;
12
using System.Threading.Tasks;
13
using System.Windows.Forms;
14

  
15
namespace UpDateCopy
16
{
17
    public partial class FrmCopy : Form
18
    {
19

  
20
        // コピー一覧リスト
21
        private static List<string> m_CopyList = new List<string>();
22

  
23
        #region コンストラクタ
24
        public FrmCopy()
25
        {
26
            InitializeComponent();
27
        }
28
        #endregion
29

  
30
        /// <summary>
31
        /// 画面ロード
32
        /// </summary>
33
        /// <param name="sender"></param>
34
        /// <param name="e"></param>
35
        private void FrmCopy_Load(object sender, EventArgs e)
36
        {
37
        }
38

  
39
        /// <summary>
40
        /// 工程管理の終了を待ってコピーする
41
        /// </summary>
42
        /// <param name="sender"></param>
43
        /// <param name="e"></param>
44
        private void FrmCopy_Shown(object sender, EventArgs e)
45
        {
46
            // コマンドライン引数を取る
47
            string[] cmds = Environment.GetCommandLineArgs();
48

  
49
            lblMessage.Text = ClsCommon.s_TargetProcess + "を更新しています。\nそのまましばらくお待ちください。";
50
            lblMessage.Refresh();
51

  
52
            // メインプログラムの終了を待つ
53
            while (true)
54
            {
55
                bool Aliveflg = false;
56
                int cnt = 0;
57
                Process[] processList = Process.GetProcesses();
58
                foreach (Process p in processList)
59
                {
60
                    if (p.ProcessName == ClsCommon.s_TargetProcess)
61
                    {
62
                        if (p.Responding)
63
                        {
64
                            Aliveflg = true;
65
                            Console.WriteLine("OK");
66
                            break;
67
                        }
68
                        else
69
                        {
70
                            break;
71
                        }
72
                    }
73
                    Debug.WriteLine(++cnt + ":" + p.ProcessName);
74
                }
75
                if (!Aliveflg) break;
76
                System.Threading.Thread.Sleep(1000);
77
            }
78

  
79
            System.Threading.Thread.Sleep(5000);
80
            
81
            // ファイルコピー
82
            CopyFileProcess();
83

  
84
            this.Close();
85
            Application.Exit();
86

  
87
            // ターゲットを起動する
88
            string ExecProc = System.Environment.CurrentDirectory + "\\" + ClsCommon.s_TargetProcess + ".exe";
89
            //logger.ErrorFormat("{0}:起動プログラム:{1}", this.Name, ExecProc);
90
            Process exec = Process.Start(ExecProc);
91

  
92
        }
93
    
94
        /// <summary>
95
        /// ファイルコピーメイン
96
        /// </summary>
97
        /// <param name="dir"></param>
98
        private void CopyFileProcess()
99
        {
100
            try
101
            {
102
                // コピー対象を検索する
103
                CreateCopyList();
104
                // コピー対象が無ければ処理終了
105
                if (m_CopyList.Count == 0) return;
106

  
107
                lblMessage.Text = ClsCommon.s_TargetProcess + "を更新しています。\nそのまましばらくお待ちください。";
108
                lblMessage.Refresh();
109

  
110
                // プログレスバー設定
111
                progressBar.Minimum = 0;
112
                progressBar.Value = 0;
113
                // プログレスバーMAX設定
114
                progressBar.Maximum = m_CopyList.Count;
115

  
116
                // コピー先ファイル名
117
                string destinationPath = System.Environment.CurrentDirectory + @"\" ;
118

  
119
                // ファイルコピー
120
                for (int i = 0; i < m_CopyList.Count; i++)
121
                {
122
                    // ファイル名を取得する
123
                    int spoint = m_CopyList[i].LastIndexOf("\\") + 1;
124
                    string Procename = m_CopyList[i].Substring(spoint);
125

  
126
                    // コピー先ファイル名
127
                    string destinationFile = @destinationPath + Procename;
128
                    
129
                    // ファイルコピー
130
                    File.Copy(@m_CopyList[i], @destinationFile, true);
131
                    ClsCommon.ErrorLogWrite(string.Format("{0}::{1}", @m_CopyList[i], @destinationFile));
132
                    // プログレスバー加算
133
                    progressBar.Value++;
134
                    progressBar.Refresh();
135
                }
136
                // プログレスバー加算
137
                progressBar.Value = progressBar.Maximum;
138
                progressBar.Refresh();
139
            }
140
            catch (Exception ex)
141
            {
142
                ClsCommon.ErrorLogWrite(ex.Message.ToString());
143
            }
144
        }
145
        /// <summary>
146
        /// コピーファイル一覧作成
147
        /// </summary>
148
        /// <param name="wrtString"></param>
149
        /// <returns></returns>
150
        private void CreateCopyList()
151
        {
152

  
153
            try
154
            {
155
                lblMessage.Text = ClsCommon.s_TargetProcess + "の更新を調査しています。\nそのまましばらくお待ちください。";
156
                lblMessage.Refresh();
157

  
158
                // 自プロセス名を作成する
159
                string myProcess = Process.GetCurrentProcess().ProcessName + ".exe";
160

  
161
                // コピー元ファイル名を取得する
162
                string[] files = Directory.GetFiles(@ClsCommon.s_UPDATE_FILE_PATH);
163
                foreach (string sourceFile in files)
164
                {
165
                    // ファイル名を取得する
166
                    int spoint = sourceFile.LastIndexOf("\\") + 1;
167
                    string ProgramName = sourceFile.Substring(spoint);
168

  
169
                    // 自分は処理しない
170
                    if (myProcess == ProgramName) continue;
171

  
172
                    // コピー先ファイル名
173
                    string destinationFile = System.Environment.CurrentDirectory + "\\" + ProgramName;
174

  
175
                    // ----- コピー先にファイルファイルがない
176
                    if (!File.Exists(@destinationFile))
177
                    {
178
                        m_CopyList.Add(@sourceFile);
179
                        continue;
180
                    }
181

  
182
                    // ハッシュ値を取得する
183
                    // ----- コピー元ファイル
184
                    string srcHash = ClsCommon.GetFileHashData(@sourceFile);
185
                    // ----- コピー先ファイル
186
                    string destHash = ClsCommon.GetFileHashData(@destinationFile);
187

  
188
                    // ファイルが違う
189
                    if (srcHash != destHash)
190
                    {
191
                        // 更新時間を確認する
192
                        // ----- コピー元ファイル
193
                        DateTime srcTimeStamp = ClsCommon.GetFileTimeStamp(@sourceFile, 'U');
194
                        // ----- コピー先ファイル
195
                        DateTime destTimeStamp = ClsCommon.GetFileTimeStamp(@destinationFile, 'U');
196
                        // コピー元ファイルが新しくない
197
                        if (srcTimeStamp <= destTimeStamp) continue;
198

  
199
                        m_CopyList.Add(@sourceFile);
200
                    }
201
                }
202
            }
203
            catch (Exception ex)
204
            {
205
                ClsCommon.ErrorLogWrite(ex.Message.ToString());
206
            }
207
        }
208

  
209
    }
210
}
trunk/src/UpDateCopy/UpDateCopy/FrmCopy.resx
1
<?xml version="1.0" encoding="utf-8"?>
2
<root>
3
  <!-- 
4
    Microsoft ResX Schema 
5
    
6
    Version 2.0
7
    
8
    The primary goals of this format is to allow a simple XML format 
9
    that is mostly human readable. The generation and parsing of the 
10
    various data types are done through the TypeConverter classes 
11
    associated with the data types.
12
    
13
    Example:
14
    
15
    ... ado.net/XML headers & schema ...
16
    <resheader name="resmimetype">text/microsoft-resx</resheader>
17
    <resheader name="version">2.0</resheader>
18
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
        <value>[base64 mime encoded serialized .NET Framework object]</value>
24
    </data>
25
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
        <comment>This is a comment</comment>
28
    </data>
29
                
30
    There are any number of "resheader" rows that contain simple 
31
    name/value pairs.
32
    
33
    Each data row contains a name, and value. The row also contains a 
34
    type or mimetype. Type corresponds to a .NET class that support 
35
    text/value conversion through the TypeConverter architecture. 
36
    Classes that don't support this are serialized and stored with the 
37
    mimetype set.
38
    
39
    The mimetype is used for serialized objects, and tells the 
40
    ResXResourceReader how to depersist the object. This is currently not 
41
    extensible. For a given mimetype the value must be set accordingly:
42
    
43
    Note - application/x-microsoft.net.object.binary.base64 is the format 
44
    that the ResXResourceWriter will generate, however the reader can 
45
    read any of the formats listed below.
46
    
47
    mimetype: application/x-microsoft.net.object.binary.base64
48
    value   : The object must be serialized with 
49
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50
            : and then encoded with base64 encoding.
51
    
52
    mimetype: application/x-microsoft.net.object.soap.base64
53
    value   : The object must be serialized with 
54
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
            : and then encoded with base64 encoding.
56

  
57
    mimetype: application/x-microsoft.net.object.bytearray.base64
58
    value   : The object must be serialized into a byte array 
59
            : using a System.ComponentModel.TypeConverter
60
            : and then encoded with base64 encoding.
61
    -->
62
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64
    <xsd:element name="root" msdata:IsDataSet="true">
65
      <xsd:complexType>
66
        <xsd:choice maxOccurs="unbounded">
67
          <xsd:element name="metadata">
68
            <xsd:complexType>
69
              <xsd:sequence>
70
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
71
              </xsd:sequence>
72
              <xsd:attribute name="name" use="required" type="xsd:string" />
73
              <xsd:attribute name="type" type="xsd:string" />
74
              <xsd:attribute name="mimetype" type="xsd:string" />
75
              <xsd:attribute ref="xml:space" />
76
            </xsd:complexType>
77
          </xsd:element>
78
          <xsd:element name="assembly">
79
            <xsd:complexType>
80
              <xsd:attribute name="alias" type="xsd:string" />
81
              <xsd:attribute name="name" type="xsd:string" />
82
            </xsd:complexType>
83
          </xsd:element>
84
          <xsd:element name="data">
85
            <xsd:complexType>
86
              <xsd:sequence>
87
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89
              </xsd:sequence>
90
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93
              <xsd:attribute ref="xml:space" />
94
            </xsd:complexType>
95
          </xsd:element>
96
          <xsd:element name="resheader">
97
            <xsd:complexType>
98
              <xsd:sequence>
99
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100
              </xsd:sequence>
101
              <xsd:attribute name="name" type="xsd:string" use="required" />
102
            </xsd:complexType>
103
          </xsd:element>
104
        </xsd:choice>
105
      </xsd:complexType>
106
    </xsd:element>
107
  </xsd:schema>
108
  <resheader name="resmimetype">
109
    <value>text/microsoft-resx</value>
110
  </resheader>
111
  <resheader name="version">
112
    <value>2.0</value>
113
  </resheader>
114
  <resheader name="reader">
115
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
  </resheader>
117
  <resheader name="writer">
118
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
  </resheader>
120
  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
121
  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
122
    <value>
123
        AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA
124
        AAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAQH/AAQC/wAAAP8AAAD/ARcL/wVLJP8Igz//C65T/w3I
125
        YP8N0mX/DdJl/w3IYP8LrlP/CIM//wVLJP8BFwv/AAAA/wAAAP8ABAL/AAEB/wAAAP8AAAD/AAAA/wAA
126
        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAIB/wABAP8AAAD/AiYS/wh/Pf8NxF7/DuFs/w/m
127
        bv8O4Wz/Dt1q/w7caf8O3Gn/Dt1q/w7hbP8P5m7/DuFs/w3EXv8Ifz3/AiYS/wAAAP8AAQD/AAIB/wAA
128
        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wADAf8AAAD/AQoF/wdvNf8O02X/D+Zu/w7b
129
        af8O1Gb/DtNl/w7UZv8O1mb/DtZn/w7WZ/8O1mb/DtRm/w7TZf8O1Gb/Dttp/w/mbv8O02X/B281/wEK
130
        Bf8AAAD/AAMB/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAwH/AAAA/wIgD/8KqFH/DuRt/w7V
131
        Zv8NzWP/DdFk/w3UZv8N1Gb/DdRm/w3TZf8N02X/DdNl/w3TZf8N1Gb/DdRm/w3UZv8N0WT/Dc1j/w7V
132
        Zv8O5G3/CqhR/wIgD/8AAAD/AAMB/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAMB/wAAAP8DKRT/DMBc/w7e
133
        av8NymH/Dc9j/w3RZP8N0GT/DdBk/w3QZP8N0GT/DdBk/w3QZP8N0GT/DdBk/w3QZP8N0GT/DdBk/w3Q
134
        ZP8N0WT/Dc9j/w3KYf8O3mr/DMBc/wMpFP8AAAD/AAMB/wAAAP8AAAD/AAAA/wACAf8AAAD/AiAQ/wy+
135
        W/8O12f/Dcdg/w3NY/8NzWL/Dc1i/w3NYv8NzWL/Dc1i/w3NYv8NzWL/Dc1i/w3NYv8NzWL/Dc1i/w3N
136
        Yv8NzWL/Dc1i/w3NYv8NzWL/Dc1j/w3HYP8O12f/DL5b/wIgEP8AAAD/AAIB/wAAAP8AAQH/AAIB/wEJ
137
        BP8Ko07/DtZn/w3EXv8Ny2H/Dclh/w3KYf8NymH/Dcph/w3KYf8NymH/Dcph/w3KYf8NymH/Dcph/w3K
138
        Yf8NymH/Dcph/w3KYf8NymH/Dcph/w3KYf8NyWH/Dcth/w3EXv8O1mf/CqNO/wEJBP8AAgH/AAEB/wAD
139
        Av8AAAD/B2sz/w7WZ/8MwV3/Dcdg/w3GX/8Nxl//DcZf/w3GX/8Nxl//DcZf/w3GX/8Nxl//DcZf/w3G
140
        X/8Nxl//DcZf/w3GX/8Nxl//DcZf/w3GX/8Nxl//DcZf/w3GX/8Nxl//Dcdg/w3BXf8O1mf/B2sz/wAA
141
        AP8AAwL/AAAA/wIlEv8Mwl3/DMNe/wzCXf8NxF7/DcNf/wzDXf8Mw17/DMNe/wzDXv8Mw17/DMNe/w3D
142
        Xv8Mw17/DMNe/wzDXv8Mw17/DMNe/wzDXv8Mw17/DMNe/wzDXv8Mw17/DMNe/wzDXv8Mw17/DMJd/wzD
143
        Xv8Mwl3/AiUS/wAAAP8AAAD/B3U4/w3NY/8Lu1n/DsFe/wq/Wv8Jv1r/DsBd/wzAXP8NwF3/DMBc/wzA
144
        XP8MwFz/DcBd/w7AXv8NwF3/DMBc/w3AXf8MwFz/DcBd/wzAXP8MwFz/DcBd/wzAXP8MwFz/DcBd/w3A
145
        Xf8NwV3/DLta/w3NY/8HdTj/AAAA/wEXC/8LrVP/DL9c/w27W/8Hu1f/E75f/xS+X/8Hu1f/C7xZ/wm7
146
        WP8MvVv/DL1b/wq8Wf8GulX/ArlT/wi8Wf8LvFn/CbtY/wu9XP8Ju1j/CrxZ/wu8Wv8Iu1f/DL1b/wq8
147
        Wf8GulX/BbpU/wa6Vv8Mu1r/DL9c/wutU/8BFwv/BEUh/wzBXP8Ot1n/CLhW/xi8YP+x6cr/uuzR/xK5
148
        Wf9SzYf/Wc+N/wO2Uv8Ft1T/UM2H/6znxf+S4LX/Frpb/1vPjP9Wz4z/ALJH/2TTlv9NyoH/Gbte/3/b
149
        qf8FtU//RMl+/6blwv+m5cH/hNuq/wm4Vv8Mt1j/DcFd/wRFIf8HdDj/DL9c/w+0Wf8AsUv/aNKX/7fo
150
        y/+36cz/Yc+Q/2POj/931qL/ArJP/wKzUP9t05r/x+7Y/9Ly4f9s0ZX/V8qG/4faq/8AqDn/lN+2/0vH
151
        fv8iumH/p+XE/wOwSv9azYz/zfDd/7jqz/+W37b/CLRU/wuzVv8Mv1z/B3Q4/wmVSP8Lt1j/DbJX/wGu
152
        Sv+P3LL/RMJ4/zzAc/+E2Kn/X8uM/2fPlv8Aq0X/Aa5M/3TTnv9WyYj/Ob5u/53gu/8yvW3/t+nO/5zg
153
        uv+26M3/ILhh/yW5ZP+c4Lv/AaxH/2DNkP93057/C69N/xG1W/8KslX/C7FV/wu3WP8JlUj/CqdQ/wux
154
        Vf8Mr1X/AqtL/5Dasf83vXH/MLtt/4TWqP9eyYv/iNeq/yu4Z/8Dqkn/ddGd/13Kjf8Lq0z/m9+6/zG5
155
        av+y5sn/wuvU/7DlyP8Lr1P/J7hm/57gu/8BqEX/Y8yR/2/Pl/8Aozr/Bq5R/wuwVf8Lr1T/C7FV/wqn
156
        UP8Lq1L/C6xT/wytVP8CqEn/kdmx/zm6cf8xuGz/iNar/1HCgP/c8+f/3vXq/0a+d/9sy5P/ZMqS/wWm
157
        R/+b3bn/Obdp/4nWqv9EvHT/k9qy/wKoSv8otmf/nd66/wOlRf9bx4r/ot+8/2jLk/9Bvnn/BKlN/w2t
158
        VP8LrFP/C6tS/wuoUf8LqVH/DKlS/wKkSP+R2LD/OLhv/zG1av+G1Kf/XcSI/5PYsP+H0qX/hdSo/2nJ
159
        kv9jyI//AqJE/57du/8ssGD/fdCg/2zKlP+A0qT/AKJD/yq0Z/+c3Ln/BKNF/1PBgv/U8OH/5Pbs/3rQ
160
        oP8Ao0X/DqpU/wqpUf8LqFH/CqBN/wqmUP8LplH/AqFG/5HWr/84tW7/MbNp/4PRpf9lxY3/YcWM/yCo
161
        U/+N1a3/dMuZ/2HFjf8JoUb/od29/xqoVf9qyJL/nNu4/2jHkf8BnkD/LrNp/53buf8En0P/X8SL/4jS
162
        p/8sr2L/JK9i/wakTf8LplD/CqdQ/wqgTf8JjEP/CqZQ/wuiT/8CnUT/kdWu/ziybf8xsGj/hNCl/2XD
163
        jf9hwor/IqVT/43UrP90yZj/ULt+/xihTP+n3sH/BZ1D/1W9gv/M7Nv/Trt9/wCYO/8iqVz/mdi2/wCU
164
        M/9iw4z/bMaS/wCRLf8An0f/C6NP/wqhTf8KplD/CYxD/wdsNP8KplD/C51N/wKaQ/+R067/N69q/y+s
165
        Zf+EzqT/WbyC/57Yt/+X1K//ktSv/23FlP+d2Lb/ndi1/53Zt/8CmUL/R7Z3/9Xv4f8rqWD/Jadc/4jQ
166
        p/+04cf/Y8CJ/2bCjv+k27v/c8eX/1W8g/8Dm0b/C51M/wqnUP8HbDT/BEIg/wqjTv8Lmkv/AZZA/5HS
167
        rf89r27/Oa5s/5TUsP9jv4v/4vTq/9/z6P9lwY7/eMmc/+j27v/W7+H/Y8CM/yqpZP9SuYD/y+rZ/y2p
168
        Y/9fvYj/3vLn/8np1/+85M7/ZsCM/87r2//g8uj/q93B/xKfUP8JmUn/C6RP/wRCIP8BGAz/CZJG/wiZ
169
        Sf8LmEr/TrV8/0izeP9Hsnf/VbiB/021fP9cu4b/U7eA/z2ucP9OtXz/W7uG/061fP8+rnD/QrBz/0Sx
170
        df9YuYT/RLF1/0u0ev9YuYT/V7mD/0izeP9Ar3H/V7mD/1e5g/9VuIH/N6tr/wiZSf8Jkkf/ARgM/wAA
171
        AP8HZjH/B55L/xGVTP9IsXf/TLJ5/0uxef9IsHb/SbF4/0Wvdf9HsHb/TbJ7/0mxeP9Fr3X/SLB3/02y
172
        e/9Msnr/S7J5/0awdv9Msnn/SrF4/0avdf9GsHX/SbF3/0yyef9GsHb/Ra90/0yyev84pmn/Bp1K/wdm
173
        Mv8AAAD/AAAA/wImEv8Jl0n/B49E/0uveP9atoP/VrSA/1i1gf9XtIH/WLWC/1i1gv9WtID/V7SB/1i1
174
        gv9YtYH/VrSA/1a0gP9WtIH/WLWC/1a0gP9XtIH/WLWC/1i1gf9XtYH/VrSA/1i1gv9WtID/XriG/yOc
175
        Wf8ElUX/BCYT/wAAAP8AAgH/AAAA/whdLv8ClkT/L5xg/2i7jf9dtYT/YbeH/2C2h/9gt4f/YLeH/2G3
176
        h/9gt4f/YLeH/2G3h/9ht4f/YbeH/2G3h/9gt4f/YLaH/2C2h/9gtof/YLaH/2C2h/9ht4f/XrWE/2a6
177
        i/9Nqnb/BphH/wZcLf8AAAD/AAIB/wABAf8AAQH/Ag8I/wd/Pf8IkUX/Wq+A/2+8kv9nuIv/a7qO/2q5
178
        jv9quY7/armO/2q5jv9quY7/armO/2q5jv9quY7/armO/2q5jf9quY3/armN/2q5jf9quY3/a7mO/2e4
179
        i/9tu4//Z7WK/xSWTv8EfTr/Ag8I/wABAf8AAQH/AAAA/wABAf8AAAD/BCIR/wSJQP8Xkk7/cbiR/3m/
180
        mf9wupL/dLyU/3W8lf90vJX/dLyV/3S8lf90vJX/dLyV/3S8lP90vJT/dLyU/3S8lP90vJX/dLyV/3O8
181
        lP9wupL/eb+Z/3O5k/8fllT/Aog+/wQiEv8AAAD/AAEB/wAAAP8AAAD/AAAA/wACAf8AAAD/BSwW/wKG
182
        Pf8dk1H/dbeT/4rGpf99v5v/e72Z/32+mv9+v5z/f8Cc/3/AnP9/wJz/f8Cc/3/AnP9/wJz/fr+b/3y+
183
        mv97vZn/f8Cc/4rGpf9xtY//HJNR/wKGPf8FLBf/AAAA/wACAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAD
184
        Af8AAAD/BSQS/wJ2Nf8Rjkj/XKl+/43Dpf+TyKv/jMWl/4fCof+FwaD/hcGf/4XBn/+FwZ//hcGf/4XB
185
        oP+HwqH/jcWm/5PJq/+JwaL/U6R2/w2MRf8Cdjb/BSQT/wAAAP8AAwH/AAAA/wAAAP8AAAD/AAAA/wAA
186
        AP8AAAD/AAAA/wACAf8AAAD/AxAJ/wNXKP8Cgjr/JpRW/16qf/+FvZ7/mMit/53Msv+ezbP/ns2z/57N
187
        s/+ezbP/ncyy/5fHrf+Cu5v/VqZ5/x6PUP8BgTn/BFcp/wMQCf8AAAD/AAIB/wAAAP8AAAD/AAAA/wAA
188
        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wACAf8AAAD/AQAA/wUnFP8AWSf/AHYz/w+FQ/8qkFb/QZln/1Gg
189
        dP9ZpXv/WqV7/1Khdf9BmWf/KI9V/w2EQf8AdTP/AVop/wUnFf8BAAD/AAAA/wACAf8AAAD/AAAA/wAA
190
        AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wABAf8AAgH/AAAA/wMBAv8FGw//Ajwc/wBY
191
        Jv8AbC7/AHYy/wB4M/8AeDP/AHYy/wBsLv8AWSf/Azwd/wUbD/8CAQH/AAAA/wACAf8AAQH/AAAA/wAA
192
        AP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
193
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
194
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
195
</value>
196
  </data>
197
</root>
trunk/src/UpDateCopy/UpDateCopy/Program.cs
1
using System;
2
using System.Collections.Generic;
3
using System.Diagnostics;
4
using System.IO;
5
using System.Linq;
6
using System.Threading.Tasks;
7
using System.Windows.Forms;
8

  
9
namespace UpDateCopy
10
{
11
    static class Program
12
    {
13
        /// <summary>
14
        /// アプリケーションのメイン エントリ ポイントです。
15
        /// </summary>
16
        [STAThread]
17
        static void Main()
18
        {
19
            //すでに起動していると判断する
20
            if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1) return;
21

  
22
            Application.EnableVisualStyles();
23
            Application.SetCompatibleTextRenderingDefault(false);
24
            Application.Run(new FrmCopy());
25
        }
26
    }
27
}
trunk/src/UpDateCopy/UpDateCopy/Properties/AssemblyInfo.cs
1
using System.Reflection;
2
using System.Runtime.CompilerServices;
3
using System.Runtime.InteropServices;
4

  
5
// アセンブリに関する一般情報は以下の属性セットをとおして制御されます。
6
// アセンブリに関連付けられている情報を変更するには、
7
// これらの属性値を変更してください。
8
[assembly: AssemblyTitle("UpDateCopy")]
9
[assembly: AssemblyDescription("")]
10
[assembly: AssemblyConfiguration("")]
11
[assembly: AssemblyCompany("")]
12
[assembly: AssemblyProduct("UpDateCopy")]
13
[assembly: AssemblyCopyright("Copyright ©  2015")]
14
[assembly: AssemblyTrademark("")]
15
[assembly: AssemblyCulture("")]
16

  
17
// ComVisible を false に設定すると、その型はこのアセンブリ内で COM コンポーネントから 
18
// 参照不可能になります。COM からこのアセンブリ内の型にアクセスする場合は、
19
// その型の ComVisible 属性を true に設定してください。
20
[assembly: ComVisible(false)]
21

  
22
// 次の GUID は、このプロジェクトが COM に公開される場合の、typelib の ID です
23
[assembly: Guid("d1a52b1e-09ee-4ffd-bcca-9c613ddae486")]
24

  
25
// アセンブリのバージョン情報は、以下の 4 つの値で構成されています:
26
//
27
//      Major Version
28
//      Minor Version 
29
//      Build Number
30
//      Revision
31
//
32
// すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を 
33
// 既定値にすることができます:
34
// [assembly: AssemblyVersion("1.0.*")]
35
[assembly: AssemblyVersion("1.0.0.0")]
36
[assembly: AssemblyFileVersion("1.0.0.0")]
trunk/src/UpDateCopy/UpDateCopy/Properties/Resources.Designer.cs
1
//------------------------------------------------------------------------------
2
// <auto-generated>
3
//     このコードはツールによって生成されました。
4
//     ランタイム バージョン:4.0.30319.42000
5
//
6
//     このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
7
//     コードが再生成されるときに損失したりします
8
// </auto-generated>
9
//------------------------------------------------------------------------------
10

  
11
namespace UpDateCopy.Properties
12
{
13

  
14

  
15
    /// <summary>
16
    ///   ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。
17
    /// </summary>
18
    // このクラスは StronglyTypedResourceBuilder クラスが ResGen
19
    // または Visual Studio のようなツールを使用して自動生成されました。
20
    // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に
21
    // ResGen を実行し直すか、または VS プロジェクトをリビルドします。
22
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25
    internal class Resources
26
    {
27

  
28
        private static global::System.Resources.ResourceManager resourceMan;
29

  
30
        private static global::System.Globalization.CultureInfo resourceCulture;
31

  
32
        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33
        internal Resources()
34
        {
35
        }
36

  
37
        /// <summary>
38
        ///   このクラスに使用される、キャッシュされた ResourceManager のインスタンスを返します。
39
        /// </summary>
40
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41
        internal static global::System.Resources.ResourceManager ResourceManager
42
        {
43
            get
44
            {
45
                if ((resourceMan == null))
46
                {
47
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UpDateCopy.Properties.Resources", typeof(Resources).Assembly);
48
                    resourceMan = temp;
49
                }
50
                return resourceMan;
51
            }
52
        }
53

  
54
        /// <summary>
55
        ///   厳密に型指定されたこのリソース クラスを使用して、すべての検索リソースに対し、
56
        ///   現在のスレッドの CurrentUICulture プロパティをオーバーライドします。
57
        /// </summary>
58
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59
        internal static global::System.Globalization.CultureInfo Culture
60
        {
61
            get
62
            {
63
                return resourceCulture;
64
            }
65
            set
66
            {
67
                resourceCulture = value;
68
            }
69
        }
70
    }
71
}
trunk/src/UpDateCopy/UpDateCopy/Properties/Resources.resx
1
<?xml version="1.0" encoding="utf-8"?>
2
<root>
3
  <!-- 
4
    Microsoft ResX Schema 
5
    
6
    Version 2.0
7
    
8
    The primary goals of this format is to allow a simple XML format 
9
    that is mostly human readable. The generation and parsing of the 
10
    various data types are done through the TypeConverter classes 
11
    associated with the data types.
12
    
13
    Example:
14
    
15
    ... ado.net/XML headers & schema ...
16
    <resheader name="resmimetype">text/microsoft-resx</resheader>
17
    <resheader name="version">2.0</resheader>
18
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
        <value>[base64 mime encoded serialized .NET Framework object]</value>
24
    </data>
25
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
        <comment>This is a comment</comment>
28
    </data>
29
                
30
    There are any number of "resheader" rows that contain simple 
31
    name/value pairs.
32
    
33
    Each data row contains a name, and value. The row also contains a 
34
    type or mimetype. Type corresponds to a .NET class that support 
35
    text/value conversion through the TypeConverter architecture. 
36
    Classes that don't support this are serialized and stored with the 
37
    mimetype set.
38
    
39
    The mimetype is used for serialized objects, and tells the 
40
    ResXResourceReader how to depersist the object. This is currently not 
41
    extensible. For a given mimetype the value must be set accordingly:
42
    
43
    Note - application/x-microsoft.net.object.binary.base64 is the format 
44
    that the ResXResourceWriter will generate, however the reader can 
45
    read any of the formats listed below.
46
    
47
    mimetype: application/x-microsoft.net.object.binary.base64
48
    value   : The object must be serialized with 
49
            : System.Serialization.Formatters.Binary.BinaryFormatter
50
            : and then encoded with base64 encoding.
51
    
52
    mimetype: application/x-microsoft.net.object.soap.base64
53
    value   : The object must be serialized with 
54
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
            : and then encoded with base64 encoding.
56

  
57
    mimetype: application/x-microsoft.net.object.bytearray.base64
58
    value   : The object must be serialized into a byte array 
59
            : using a System.ComponentModel.TypeConverter
60
            : and then encoded with base64 encoding.
61
    -->
62
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
    <xsd:element name="root" msdata:IsDataSet="true">
64
      <xsd:complexType>
65
        <xsd:choice maxOccurs="unbounded">
66
          <xsd:element name="metadata">
67
            <xsd:complexType>
68
              <xsd:sequence>
69
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
70
              </xsd:sequence>
71
              <xsd:attribute name="name" type="xsd:string" />
72
              <xsd:attribute name="type" type="xsd:string" />
73
              <xsd:attribute name="mimetype" type="xsd:string" />
74
            </xsd:complexType>
75
          </xsd:element>
76
          <xsd:element name="assembly">
77
            <xsd:complexType>
78
              <xsd:attribute name="alias" type="xsd:string" />
79
              <xsd:attribute name="name" type="xsd:string" />
80
            </xsd:complexType>
81
          </xsd:element>
82
          <xsd:element name="data">
83
            <xsd:complexType>
84
              <xsd:sequence>
85
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
86
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
87
              </xsd:sequence>
88
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
89
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
90
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
91
            </xsd:complexType>
92
          </xsd:element>
93
          <xsd:element name="resheader">
94
            <xsd:complexType>
95
              <xsd:sequence>
96
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
97
              </xsd:sequence>
98
              <xsd:attribute name="name" type="xsd:string" use="required" />
99
            </xsd:complexType>
100
          </xsd:element>
101
        </xsd:choice>
102
      </xsd:complexType>
103
    </xsd:element>
104
  </xsd:schema>
105
  <resheader name="resmimetype">
106
    <value>text/microsoft-resx</value>
107
  </resheader>
108
  <resheader name="version">
109
    <value>2.0</value>
110
  </resheader>
111
  <resheader name="reader">
112
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
113
  </resheader>
114
  <resheader name="writer">
115
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
  </resheader>
117
</root>
trunk/src/UpDateCopy/UpDateCopy/Properties/Settings.Designer.cs
1
//------------------------------------------------------------------------------
2
// <auto-generated>
3
//     This code was generated by a tool.
4
//     Runtime Version:4.0.30319.42000
5
//
6
//     Changes to this file may cause incorrect behavior and will be lost if
7
//     the code is regenerated.
8
// </auto-generated>
9
//------------------------------------------------------------------------------
10

  
11
namespace UpDateCopy.Properties
12
{
13

  
14

  
15
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18
    {
19

  
20
        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21

  
22
        public static Settings Default
23
        {
24
            get
25
            {
26
                return defaultInstance;
27
            }
28
        }
29
    }
30
}
trunk/src/UpDateCopy/UpDateCopy/Properties/Settings.settings
1
<?xml version='1.0' encoding='utf-8'?>
2
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
3
  <Profiles>
4
    <Profile Name="(Default)" />
5
  </Profiles>
6
  <Settings />
7
</SettingsFile>
trunk/src/UpDateCopy/UpDateCopy/UpDateCopy.csproj
1
<?xml version="1.0" encoding="utf-8"?>
2
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4
  <PropertyGroup>
5
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
7
    <ProjectGuid>{3B7CCC3E-82E5-42CA-8EE1-7628D4B52820}</ProjectGuid>
8
    <OutputType>WinExe</OutputType>
9
    <AppDesignerFolder>Properties</AppDesignerFolder>
10
    <RootNamespace>UpDateCopy</RootNamespace>
11
    <AssemblyName>UpDateCopy</AssemblyName>
12
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
13
    <FileAlignment>512</FileAlignment>
14
  </PropertyGroup>
15
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
16
    <PlatformTarget>AnyCPU</PlatformTarget>
17
    <DebugSymbols>true</DebugSymbols>
18
    <DebugType>full</DebugType>
19
    <Optimize>false</Optimize>
20
    <OutputPath>bin\Debug\</OutputPath>
21
    <DefineConstants>DEBUG;TRACE</DefineConstants>
22
    <ErrorReport>prompt</ErrorReport>
23
    <WarningLevel>4</WarningLevel>
24
  </PropertyGroup>
25
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
26
    <PlatformTarget>AnyCPU</PlatformTarget>
27
    <DebugType>pdbonly</DebugType>
28
    <Optimize>true</Optimize>
29
    <OutputPath>bin\Release\</OutputPath>
30
    <DefineConstants>TRACE</DefineConstants>
31
    <ErrorReport>prompt</ErrorReport>
32
    <WarningLevel>4</WarningLevel>
33
  </PropertyGroup>
34
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
35
    <DebugSymbols>true</DebugSymbols>
36
    <OutputPath>bin\x86\Debug\</OutputPath>
37
    <DefineConstants>DEBUG;TRACE</DefineConstants>
38
    <DebugType>full</DebugType>
39
    <PlatformTarget>x86</PlatformTarget>
40
    <ErrorReport>prompt</ErrorReport>
41
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
42
    <Prefer32Bit>true</Prefer32Bit>
43
  </PropertyGroup>
44
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
45
    <OutputPath>bin\x86\Release\</OutputPath>
46
    <DefineConstants>TRACE</DefineConstants>
47
    <Optimize>true</Optimize>
48
    <DebugType>pdbonly</DebugType>
49
    <PlatformTarget>x86</PlatformTarget>
50
    <ErrorReport>prompt</ErrorReport>
51
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
52
    <Prefer32Bit>true</Prefer32Bit>
53
  </PropertyGroup>
54
  <PropertyGroup>
55
    <ApplicationIcon>updatIcon.ico</ApplicationIcon>
56
  </PropertyGroup>
57
  <ItemGroup>
58
    <Reference Include="System" />
59
    <Reference Include="System.Core" />
60
    <Reference Include="System.Xml.Linq" />
61
    <Reference Include="System.Data.DataSetExtensions" />
62
    <Reference Include="Microsoft.CSharp" />
63
    <Reference Include="System.Data" />
64
    <Reference Include="System.Deployment" />
65
    <Reference Include="System.Drawing" />
66
    <Reference Include="System.Windows.Forms" />
67
    <Reference Include="System.Xml" />
68
  </ItemGroup>
69
  <ItemGroup>
70
    <Compile Include="ClsCommon.cs" />
71
    <Compile Include="FrmCopy.cs">
72
      <SubType>Form</SubType>
73
    </Compile>
74
    <Compile Include="FrmCopy.Designer.cs">
75
      <DependentUpon>FrmCopy.cs</DependentUpon>
76
    </Compile>
77
    <Compile Include="Program.cs" />
78
    <Compile Include="Properties\AssemblyInfo.cs" />
79
    <EmbeddedResource Include="FrmCopy.resx">
80
      <DependentUpon>FrmCopy.cs</DependentUpon>
81
    </EmbeddedResource>
82
    <EmbeddedResource Include="Properties\Resources.resx">
83
      <Generator>ResXFileCodeGenerator</Generator>
84
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
85
      <SubType>Designer</SubType>
86
    </EmbeddedResource>
87
    <Compile Include="Properties\Resources.Designer.cs">
88
      <AutoGen>True</AutoGen>
89
      <DependentUpon>Resources.resx</DependentUpon>
90
    </Compile>
91
    <None Include="Properties\Settings.settings">
92
      <Generator>SettingsSingleFileGenerator</Generator>
93
      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
94
    </None>
95
    <Compile Include="Properties\Settings.Designer.cs">
96
      <AutoGen>True</AutoGen>
97
      <DependentUpon>Settings.settings</DependentUpon>
98
      <DesignTimeSharedInput>True</DesignTimeSharedInput>
99
    </Compile>
100
  </ItemGroup>
101
  <ItemGroup>
102
    <None Include="App.config" />
103
  </ItemGroup>
104
  <ItemGroup>
105
    <Content Include="updatIcon.ico" />
106
  </ItemGroup>
107
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
108
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
109
       Other similar extension points exist, see Microsoft.Common.targets.
110
  <Target Name="BeforeBuild">
111
  </Target>
112
  <Target Name="AfterBuild">
113
  </Target>
114
  -->
115
</Project>
trunk/src/UpDateCopy/UpDateCopy/bin/x86/Debug/UpDateCopy.exe.config
1
<?xml version="1.0" encoding="utf-8" ?>
2
<configuration>
3
    <startup> 
4
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
5
    </startup>
6
</configuration>
trunk/src/UpDateCopy/UpDateCopy/bin/x86/Debug/UpDateCopy.vshost.exe.config
1
<?xml version="1.0" encoding="utf-8" ?>
2
<configuration>
3
    <startup> 
4
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
5
    </startup>
6
</configuration>
trunk/src/UpDateCopy/UpDateCopy/bin/x86/Debug/UpDateCopy.vshost.exe.manifest
1
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
3
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
4
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
5
    <security>
6
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
7
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
8
      </requestedPrivileges>
9
    </security>
10
  </trustInfo>
11
</assembly>
trunk/src/UpDateCopy/UpDateCopy/lib/log4net.xml
1
<?xml version="1.0"?>
2
<doc>
3
    <assembly>
4
        <name>log4net</name>
5
    </assembly>
6
    <members>
7
        <member name="T:log4net.Appender.AdoNetAppender">
8
            <summary>
9
            Appender that logs to a database.
10
            </summary>
11
            <remarks>
12
            <para>
13
            <see cref="T:log4net.Appender.AdoNetAppender"/> appends logging events to a table within a
14
            database. The appender can be configured to specify the connection 
15
            string by setting the <see cref="P:log4net.Appender.AdoNetAppender.ConnectionString"/> property. 
16
            The connection type (provider) can be specified by setting the <see cref="P:log4net.Appender.AdoNetAppender.ConnectionType"/>
17
            property. For more information on database connection strings for
18
            your specific database see <a href="http://www.connectionstrings.com/">http://www.connectionstrings.com/</a>.
19
            </para>
20
            <para>
21
            Records are written into the database either using a prepared
22
            statement or a stored procedure. The <see cref="P:log4net.Appender.AdoNetAppender.CommandType"/> property
23
            is set to <see cref="F:System.Data.CommandType.Text"/> (<c>System.Data.CommandType.Text</c>) to specify a prepared statement
24
            or to <see cref="F:System.Data.CommandType.StoredProcedure"/> (<c>System.Data.CommandType.StoredProcedure</c>) to specify a stored
25
            procedure.
26
            </para>
27
            <para>
28
            The prepared statement text or the name of the stored procedure
29
            must be set in the <see cref="P:log4net.Appender.AdoNetAppender.CommandText"/> property.
30
            </para>
31
            <para>
32
            The prepared statement or stored procedure can take a number
33
            of parameters. Parameters are added using the <see cref="M:log4net.Appender.AdoNetAppender.AddParameter(log4net.Appender.AdoNetAppenderParameter)"/>
34
            method. This adds a single <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> to the
35
            ordered list of parameters. The <see cref="T:log4net.Appender.AdoNetAppenderParameter"/>
36
            type may be subclassed if required to provide database specific
37
            functionality. The <see cref="T:log4net.Appender.AdoNetAppenderParameter"/> specifies
38
            the parameter name, database type, size, and how the value should
39
            be generated using a <see cref="T:log4net.Layout.ILayout"/>.
40
            </para>
41
            </remarks>
42
            <example>
43
            An example of a SQL Server table that could be logged to:
44
            <code lang="SQL">
45
            CREATE TABLE [dbo].[Log] ( 
46
              [ID] [int] IDENTITY (1, 1) NOT NULL ,
47
              [Date] [datetime] NOT NULL ,
48
              [Thread] [varchar] (255) NOT NULL ,
49
              [Level] [varchar] (20) NOT NULL ,
50
              [Logger] [varchar] (255) NOT NULL ,
51
              [Message] [varchar] (4000) NOT NULL 
52
            ) ON [PRIMARY]
53
            </code>
54
            </example>
55
            <example>
56
            An example configuration to log to the above table:
57
            <code lang="XML" escaped="true">
58
            <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
59
              <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
60
              <connectionString value="data source=SQLSVR;initial catalog=test_log4net;integrated security=false;persist security info=True;User ID=sa;Password=sa"/>
61
              <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)"/>
62
              <parameter>
63
                <parameterName value="@log_date"/>
64
                <dbType value="DateTime"/>
65
                <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}"/>
66
              </parameter>
67
              <parameter>
68
                <parameterName value="@thread"/>
69
                <dbType value="String"/>
70
                <size value="255"/>
71
                <layout type="log4net.Layout.PatternLayout" value="%thread"/>
72
              </parameter>
73
              <parameter>
74
                <parameterName value="@log_level"/>
75
                <dbType value="String"/>
76
                <size value="50"/>
77
                <layout type="log4net.Layout.PatternLayout" value="%level"/>
78
              </parameter>
79
              <parameter>
80
                <parameterName value="@logger"/>
81
                <dbType value="String"/>
82
                <size value="255"/>
83
                <layout type="log4net.Layout.PatternLayout" value="%logger"/>
84
              </parameter>
85
              <parameter>
86
                <parameterName value="@message"/>
87
                <dbType value="String"/>
88
                <size value="4000"/>
89
                <layout type="log4net.Layout.PatternLayout" value="%message"/>
90
              </parameter>
91
            </appender>
92
            </code>
93
            </example>
94
            <author>Julian Biddle</author>
95
            <author>Nicko Cadell</author>
96
            <author>Gert Driesen</author>
97
            <author>Lance Nehring</author>
98
        </member>
99
        <member name="T:log4net.Appender.BufferingAppenderSkeleton">
100
            <summary>
101
            Abstract base class implementation of <see cref="T:log4net.Appender.IAppender"/> that 
102
            buffers events in a fixed size buffer.
103
            </summary>
104
            <remarks>
105
            <para>
106
            This base class should be used by appenders that need to buffer a 
107
            number of events before logging them. For example the <see cref="T:log4net.Appender.AdoNetAppender"/> 
108
            buffers events and then submits the entire contents of the buffer to 
109
            the underlying database in one go.
110
            </para>
111
            <para>
112
            Subclasses should override the <see cref="M:SendBuffer(LoggingEvent[])"/>
113
            method to deliver the buffered events.
114
            </para>
115
            <para>The BufferingAppenderSkeleton maintains a fixed size cyclic 
116
            buffer of events. The size of the buffer is set using 
117
            the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.BufferSize"/> property.
118
            </para>
119
            <para>A <see cref="T:log4net.Core.ITriggeringEventEvaluator"/> is used to inspect 
120
            each event as it arrives in the appender. If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/> 
121
            triggers, then the current buffer is sent immediately 
122
            (see <see cref="M:SendBuffer(LoggingEvent[])"/>). Otherwise the event 
123
            is stored in the buffer. For example, an evaluator can be used to 
124
            deliver the events immediately when an ERROR event arrives.
125
            </para>
126
            <para>
127
            The buffering appender can be configured in a <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> mode. 
128
            By default the appender is NOT lossy. When the buffer is full all 
129
            the buffered events are sent with <see cref="M:SendBuffer(LoggingEvent[])"/>.
130
            If the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Lossy"/> property is set to <c>true</c> then the 
131
            buffer will not be sent when it is full, and new events arriving 
132
            in the appender will overwrite the oldest event in the buffer. 
133
            In lossy mode the buffer will only be sent when the <see cref="P:log4net.Appender.BufferingAppenderSkeleton.Evaluator"/>
134
            triggers. This can be useful behavior when you need to know about 
135
            ERROR events but not about events with a lower level, configure an 
136
            evaluator that will trigger when an ERROR event arrives, the whole 
137
            buffer will be sent which gives a history of events leading up to
138
            the ERROR event.
139
            </para>
140
            </remarks>
141
            <author>Nicko Cadell</author>
142
            <author>Gert Driesen</author>
143
        </member>
144
        <member name="T:log4net.Appender.AppenderSkeleton">
145
            <summary>
146
            Abstract base class implementation of <see cref="T:log4net.Appender.IAppender"/>. 
147
            </summary>
148
            <remarks>
149
            <para>
150
            This class provides the code for common functionality, such 
151
            as support for threshold filtering and support for general filters.
152
            </para>
153
            <para>
154
            Appenders can also implement the <see cref="T:log4net.Core.IOptionHandler"/> interface. Therefore
155
            they would require that the <see cref="M:IOptionHandler.ActivateOptions()"/> method
156
            be called after the appenders properties have been configured.
157
            </para>
158
            </remarks>
159
            <author>Nicko Cadell</author>
160
            <author>Gert Driesen</author>
161
        </member>
162
        <member name="T:log4net.Appender.IAppender">
163
            <summary>
164
            Implement this interface for your own strategies for printing log statements.
165
            </summary>
166
            <remarks>
167
            <para>
168
            Implementors should consider extending the <see cref="T:log4net.Appender.AppenderSkeleton"/>
169
            class which provides a default implementation of this interface.
170
            </para>
171
            <para>
172
            Appenders can also implement the <see cref="T:log4net.Core.IOptionHandler"/> interface. Therefore
173
            they would require that the <see cref="M:IOptionHandler.ActivateOptions()"/> method
174
            be called after the appenders properties have been configured.
175
            </para>
176
            </remarks>
177
            <author>Nicko Cadell</author>
178
            <author>Gert Driesen</author>
179
        </member>
180
        <member name="M:log4net.Appender.IAppender.Close">
181
            <summary>
182
            Closes the appender and releases resources.
183
            </summary>
184
            <remarks>
185
            <para>
186
            Releases any resources allocated within the appender such as file handles, 
187
            network connections, etc.
188
            </para>
189
            <para>
190
            It is a programming error to append to a closed appender.
191
            </para>
192
            </remarks>
193
        </member>
194
        <member name="M:log4net.Appender.IAppender.DoAppend(log4net.Core.LoggingEvent)">
195
            <summary>
196
            Log the logging event in Appender specific way.
197
            </summary>
198
            <param name="loggingEvent">The event to log</param>
199
            <remarks>
200
            <para>
201
            This method is called to log a message into this appender.
202
            </para>
203
            </remarks>
204
        </member>
205
        <member name="P:log4net.Appender.IAppender.Name">
206
            <summary>
207
            Gets or sets the name of this appender.
208
            </summary>
209
            <value>The name of the appender.</value>
210
            <remarks>
211
            <para>The name uniquely identifies the appender.</para>
212
            </remarks>
213
        </member>
214
        <member name="T:log4net.Appender.IBulkAppender">
215
            <summary>
216
            Interface for appenders that support bulk logging.
217
            </summary>
218
            <remarks>
219
            <para>
220
            This interface extends the <see cref="T:log4net.Appender.IAppender"/> interface to
221
            support bulk logging of <see cref="T:log4net.Core.LoggingEvent"/> objects. Appenders
222
            should only implement this interface if they can bulk log efficiently.
223
            </para>
224
            </remarks>
225
            <author>Nicko Cadell</author>
226
        </member>
227
        <member name="M:log4net.Appender.IBulkAppender.DoAppend(log4net.Core.LoggingEvent[])">
228
            <summary>
229
            Log the array of logging events in Appender specific way.
230
            </summary>
231
            <param name="loggingEvents">The events to log</param>
232
            <remarks>
233
            <para>
234
            This method is called to log an array of events into this appender.
235
            </para>
236
            </remarks>
237
        </member>
238
        <member name="T:log4net.Core.IOptionHandler">
239
            <summary>
240
            Interface used to delay activate a configured object.
241
            </summary>
242
            <remarks>
243
            <para>
244
            This allows an object to defer activation of its options until all
245
            options have been set. This is required for components which have
246
            related options that remain ambiguous until all are set.
247
            </para>
248
            <para>
249
            If a component implements this interface then the <see cref="M:log4net.Core.IOptionHandler.ActivateOptions"/> method 
250
            must be called by the container after its all the configured properties have been set 
251
            and before the component can be used.
252
            </para>
253
            </remarks>
254
            <author>Nicko Cadell</author>
255
        </member>
256
        <member name="M:log4net.Core.IOptionHandler.ActivateOptions">
257
            <summary>
258
            Activate the options that were previously set with calls to properties.
259
            </summary>
260
            <remarks>
261
            <para>
262
            This allows an object to defer activation of its options until all
263
            options have been set. This is required for components which have
264
            related options that remain ambiguous until all are set.
265
            </para>
266
            <para>
267
            If a component implements this interface then this method must be called
268
            after its properties have been set before the component can be used.
269
            </para>
270
            </remarks>
271
        </member>
272
        <member name="F:log4net.Appender.AppenderSkeleton.c_renderBufferSize">
273
            <summary>
274
            Initial buffer size
275
            </summary>
276
        </member>
277
        <member name="F:log4net.Appender.AppenderSkeleton.c_renderBufferMaxCapacity">
278
            <summary>
279
            Maximum buffer size before it is recycled
280
            </summary>
281
        </member>
282
        <member name="M:log4net.Appender.AppenderSkeleton.#ctor">
283
            <summary>
284
            Default constructor
285
            </summary>
286
            <remarks>
287
            <para>Empty default constructor</para>
288
            </remarks>
289
        </member>
290
        <member name="M:log4net.Appender.AppenderSkeleton.Finalize">
291
            <summary>
292
            Finalizes this appender by calling the implementation's 
293
            <see cref="M:log4net.Appender.AppenderSkeleton.Close"/> method.
294
            </summary>
295
            <remarks>
296
            <para>
297
            If this appender has not been closed then the <c>Finalize</c> method
298
            will call <see cref="M:log4net.Appender.AppenderSkeleton.Close"/>.
299
            </para>
300
            </remarks>
301
        </member>
302
        <member name="M:log4net.Appender.AppenderSkeleton.ActivateOptions">
303
            <summary>
304
            Initialize the appender based on the options set
305
            </summary>
306
            <remarks>
307
            <para>
308
            This is part of the <see cref="T:log4net.Core.IOptionHandler"/> delayed object
309
            activation scheme. The <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> method must 
310
            be called on this object after the configuration properties have
311
            been set. Until <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> is called this
312
            object is in an undefined state and must not be used. 
313
            </para>
314
            <para>
315
            If any of the configuration properties are modified then 
316
            <see cref="M:log4net.Appender.AppenderSkeleton.ActivateOptions"/> must be called again.
317
            </para>
318
            </remarks>
319
        </member>
320
        <member name="M:log4net.Appender.AppenderSkeleton.Close">
321
            <summary>
322
            Closes the appender and release resources.
323
            </summary>
324
            <remarks>
325
            <para>
326
            Release any resources allocated within the appender such as file handles, 
327
            network connections, etc.
328
            </para>
329
            <para>
330
            It is a programming error to append to a closed appender.
331
            </para>
332
            <para>
333
            This method cannot be overridden by subclasses. This method 
334
            delegates the closing of the appender to the <see cref="M:log4net.Appender.AppenderSkeleton.OnClose"/>
335
            method which must be overridden in the subclass.
336
            </para>
337
            </remarks>
338
        </member>
339
        <member name="M:log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent)">
340
            <summary>
341
            Performs threshold checks and invokes filters before 
342
            delegating actual logging to the subclasses specific 
343
            <see cref="M:Append(LoggingEvent)"/> method.
... 差分の行数が表示可能な上限を超えました。超過分は表示しません。

他の形式にエクスポート: Unified diff