OSDN Git Service

TweenUpをソリューションに追加
authorkiri_feather <kiri_feather@users.sourceforge.jp>
Tue, 25 May 2010 00:27:34 +0000 (00:27 +0000)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 18 Feb 2012 14:12:47 +0000 (23:12 +0900)
git-svn-id: http://svn.sourceforge.jp/svnroot/tween/trunk@368 e39ad16e-3079-482e-bb30-4b4d378143b6

15 files changed:
Tween.sln
TweenUp/ApplicationEvents.vb [new file with mode: 0644]
TweenUp/Form1.Designer.vb [new file with mode: 0644]
TweenUp/Form1.resx [new file with mode: 0644]
TweenUp/Form1.vb [new file with mode: 0644]
TweenUp/My Project/Application.Designer.vb [new file with mode: 0644]
TweenUp/My Project/Application.myapp [new file with mode: 0644]
TweenUp/My Project/AssemblyInfo.vb [new file with mode: 0644]
TweenUp/My Project/Resources.Designer.vb [new file with mode: 0644]
TweenUp/My Project/Resources.resx [new file with mode: 0644]
TweenUp/My Project/Settings.Designer.vb [new file with mode: 0644]
TweenUp/My Project/Settings.settings [new file with mode: 0644]
TweenUp/My Project/app.manifest [new file with mode: 0644]
TweenUp/Resources/re01.ico [new file with mode: 0644]
TweenUp/TweenUp.vbproj [new file with mode: 0644]

index 2fb0d30..d7ea359 100644 (file)
--- a/Tween.sln
+++ b/Tween.sln
@@ -3,6 +3,8 @@ Microsoft Visual Studio Solution File, Format Version 11.00
 # Visual Basic Express 2010
 Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Tween", "Tween\Tween.vbproj", "{41B54F21-5442-47D4-80F0-872D56D9E1FD}"
 EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "TweenUp", "TweenUp\TweenUp.vbproj", "{EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}"
+EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Any CPU = Debug|Any CPU
@@ -13,6 +15,10 @@ Global
                {41B54F21-5442-47D4-80F0-872D56D9E1FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
                {41B54F21-5442-47D4-80F0-872D56D9E1FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {41B54F21-5442-47D4-80F0-872D56D9E1FD}.Release|Any CPU.Build.0 = Release|Any CPU
+               {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Release|Any CPU.Build.0 = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
diff --git a/TweenUp/ApplicationEvents.vb b/TweenUp/ApplicationEvents.vb
new file mode 100644 (file)
index 0000000..7075152
--- /dev/null
@@ -0,0 +1,25 @@
+Namespace My
+
+    ' 次のイベントは MyApplication に対して利用できます:
+    ' 
+    ' Startup: アプリケーションが開始されたとき、スタートアップ フォームが作成される前に発生します。
+    ' Shutdown: アプリケーション フォームがすべて閉じられた後に発生します。このイベントは、通常の終了以外の方法でアプリケーションが終了されたときには発生しません。
+    ' UnhandledException: ハンドルされていない例外がアプリケーションで発生したときに発生するイベントです。
+    ' StartupNextInstance: 単一インスタンス アプリケーションが起動され、それが既にアクティブであるときに発生します。 
+    ' NetworkAvailabilityChanged: ネットワーク接続が接続されたとき、または切断されたときに発生します。
+    Partial Friend Class MyApplication
+
+        Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
+
+            My.Application.Log.DefaultFileLogWriter.Location = Logging.LogFileLocation.ExecutableDirectory
+            My.Application.Log.DefaultFileLogWriter.MaxFileSize = 16384
+            My.Application.Log.DefaultFileLogWriter.AutoFlush = True
+            My.Application.Log.DefaultFileLogWriter.Append = False
+            My.Application.Log.WriteException(e.Exception, TraceEventType.Error, DateAndTime.Now.ToString())
+            MsgBox(My.Resources.ExceptionMessage & vbCrLf & e.Exception.Message, , My.Resources.ExceptionTitle)
+
+        End Sub
+    End Class
+
+End Namespace
+
diff --git a/TweenUp/Form1.Designer.vb b/TweenUp/Form1.Designer.vb
new file mode 100644 (file)
index 0000000..28e3e12
--- /dev/null
@@ -0,0 +1,89 @@
+<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
+Partial Class Form1
+    Inherits System.Windows.Forms.Form
+
+    'フォームがコンポーネントの一覧をクリーンアップするために dispose をオーバーライドします。
+    <System.Diagnostics.DebuggerNonUserCode()> _
+    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+        Try
+            If disposing AndAlso components IsNot Nothing Then
+                components.Dispose()
+            End If
+        Finally
+            MyBase.Dispose(disposing)
+        End Try
+    End Sub
+
+    'Windows フォーム デザイナで必要です。
+    Private components As System.ComponentModel.IContainer
+
+    'メモ: 以下のプロシージャは Windows フォーム デザイナで必要です。
+    'Windows フォーム デザイナを使用して変更できます。  
+    'コード エディタを使って変更しないでください。
+    <System.Diagnostics.DebuggerStepThrough()> _
+    Private Sub InitializeComponent()
+        Me.Label1 = New System.Windows.Forms.Label
+        Me.Label2 = New System.Windows.Forms.Label
+        Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker
+        Me.LabelProgress = New System.Windows.Forms.Label
+        Me.SuspendLayout()
+        '
+        'Label1
+        '
+        Me.Label1.AutoSize = True
+        Me.Label1.Font = New System.Drawing.Font("MS UI Gothic", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte))
+        Me.Label1.Location = New System.Drawing.Point(102, 35)
+        Me.Label1.Name = "Label1"
+        Me.Label1.Size = New System.Drawing.Size(152, 13)
+        Me.Label1.TabIndex = 0
+        Me.Label1.Text = "Tweenを更新しています・・・"
+        Me.Label1.UseMnemonic = False
+        '
+        'Label2
+        '
+        Me.Label2.AutoSize = True
+        Me.Label2.Font = New System.Drawing.Font("MS UI Gothic", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte))
+        Me.Label2.Location = New System.Drawing.Point(97, 70)
+        Me.Label2.Name = "Label2"
+        Me.Label2.Size = New System.Drawing.Size(163, 13)
+        Me.Label2.TabIndex = 1
+        Me.Label2.Text = "このまましばらくお待ちください。"
+        Me.Label2.UseMnemonic = False
+        '
+        'BackgroundWorker1
+        '
+        '
+        'LabelProgress
+        '
+        Me.LabelProgress.AutoSize = True
+        Me.LabelProgress.Font = New System.Drawing.Font("MS UI Gothic", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte))
+        Me.LabelProgress.Location = New System.Drawing.Point(149, 135)
+        Me.LabelProgress.Name = "LabelProgress"
+        Me.LabelProgress.Size = New System.Drawing.Size(59, 13)
+        Me.LabelProgress.TabIndex = 2
+        Me.LabelProgress.Text = "進行状況"
+        Me.LabelProgress.UseMnemonic = False
+        '
+        'Form1
+        '
+        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
+        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+        Me.ClientSize = New System.Drawing.Size(357, 219)
+        Me.Controls.Add(Me.LabelProgress)
+        Me.Controls.Add(Me.Label2)
+        Me.Controls.Add(Me.Label1)
+        Me.MaximizeBox = False
+        Me.MinimizeBox = False
+        Me.Name = "Form1"
+        Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
+        Me.Text = "Form1"
+        Me.ResumeLayout(False)
+        Me.PerformLayout()
+
+    End Sub
+    Friend WithEvents Label1 As System.Windows.Forms.Label
+    Friend WithEvents Label2 As System.Windows.Forms.Label
+    Friend WithEvents BackgroundWorker1 As System.ComponentModel.BackgroundWorker
+    Friend WithEvents LabelProgress As System.Windows.Forms.Label
+
+End Class
diff --git a/TweenUp/Form1.resx b/TweenUp/Form1.resx
new file mode 100644 (file)
index 0000000..fdb6967
--- /dev/null
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="BackgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+</root>
\ No newline at end of file
diff --git a/TweenUp/Form1.vb b/TweenUp/Form1.vb
new file mode 100644 (file)
index 0000000..c443c3c
--- /dev/null
@@ -0,0 +1,255 @@
+Imports System.Diagnostics
+Imports System.Threading
+Imports System.IO
+Imports System
+
+Public Class Form1
+
+    Private TWEENEXEPATH As String = Application.StartupPath
+    Private SOURCEPATH As String = Application.StartupPath
+
+    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
+        ' 文字列リソースから設定
+        Me.Text = My.Resources.FormTitle
+        Label1.Text = My.Resources.TweenUpdating
+        Label2.Text = My.Resources.PleaseWait
+
+        ' exe自身からフォームのアイコンを取得
+        Me.Icon = Icon.ExtractAssociatedIcon(Application.ExecutablePath)
+#If 0 Then
+        If Environment.GetCommandLineArgs().Length <> 1 AndAlso Directory.Exists(Environment.GetCommandLineArgs()(1)) Then
+            TWEENEXEPATH = Environment.GetCommandLineArgs()(1)
+            SOURCEPATH = Path.GetTempPath
+        End If
+#End If
+    End Sub
+
+    Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
+        Me.BackgroundWorker1.WorkerReportsProgress = True
+        Me.BackgroundWorker1.RunWorkerAsync()
+    End Sub
+
+    Private Sub BackupConfigurationFile()
+        'Dim SrcFile As String
+        'Dim DstFile As String
+
+        'Try
+        '    SrcFile = Path.Combine(TWEENEXEPATH, "Tween.exe.Config")
+        '    DstFile = Path.Combine(TWEENEXEPATH, "Tween.exe.Config.Backup" + DateTime.Now.ToString("yyyyMMddHHmmss"))
+
+        '    File.Copy(SrcFile, DstFile, True)
+        'Catch ex As Exception
+
+        'End Try
+
+        'Try
+        '    SrcFile = Path.Combine(TWEENEXEPATH, "TweenConf.xml")
+        '    DstFile = Path.Combine(TWEENEXEPATH, "TweenConf.xml.Backup" + DateTime.Now.ToString("yyyyMMddHHmmss"))
+
+        '    File.Copy(SrcFile, DstFile, True)
+        'Catch ex As Exception
+
+        'End Try
+
+        Try
+            Dim bkDir2 As String = Path.Combine(TWEENEXEPATH, "TweenBackup2nd")
+            If Directory.Exists(bkDir2) Then
+                Directory.Delete(bkDir2, True)
+            End If
+            Dim bkDir As String = Path.Combine(TWEENEXEPATH, "TweenBackup1st")
+            If Directory.Exists(bkDir) Then
+                Directory.Move(bkDir, bkDir2)
+            End If
+        Catch ex As Exception
+
+        End Try
+        Try
+            Dim bkDir As String = Path.Combine(TWEENEXEPATH, "TweenBackup1st")
+            If Not Directory.Exists(bkDir) Then
+                Directory.CreateDirectory(bkDir)
+            End If
+            Dim files As String() = Directory.GetFiles(TWEENEXEPATH, "*.xml")
+            For Each fname As String In files
+                File.Copy(fname, Path.Combine(bkDir, Path.GetFileName(fname)))
+            Next
+        Catch ex As Exception
+
+        End Try
+
+    End Sub
+
+    Private Sub DeleteOldFiles()
+        Try
+            Dim bkDir As String = Path.Combine(TWEENEXEPATH, "TweenOldFiles")
+            If Not Directory.Exists(bkDir) Then
+                Directory.CreateDirectory(bkDir)
+            End If
+            'ログファイルの削除
+            Dim filesLog As String() = Directory.GetFiles(TWEENEXEPATH, "Tween*.log")
+            For Each fname As String In filesLog
+                File.Move(fname, Path.Combine(bkDir, Path.GetFileName(fname)))
+            Next
+            '旧設定ファイルの削除
+            Dim filesConfig As String() = Directory.GetFiles(TWEENEXEPATH, "Tween.exe.config.Backup*")
+            For Each fname As String In filesConfig
+                File.Move(fname, Path.Combine(bkDir, Path.GetFileName(fname)))
+            Next
+            '旧設定XMLファイルの削除
+            Dim filesXml As String() = Directory.GetFiles(TWEENEXEPATH, "TweenConf.xml.Backup*")
+            For Each fname As String In filesXml
+                File.Move(fname, Path.Combine(bkDir, Path.GetFileName(fname)))
+            Next
+            '旧設定XMLファイルの削除
+            Dim filesXmlSet As String() = Directory.GetFiles(TWEENEXEPATH, "Setting*.xml.Backup*")
+            For Each fname As String In filesXmlSet
+                File.Move(fname, Path.Combine(bkDir, Path.GetFileName(fname)))
+            Next
+        Catch ex As Exception
+
+        End Try
+    End Sub
+
+    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
+        Const WaitTime As Integer = 5000 ' スリープ時間
+        Dim cultures As New List(Of String)     'リソースを配置するフォルダ名(カルチャ名)
+
+        cultures.AddRange(New String() { _
+                            "en" _
+                          })
+
+
+
+        BackgroundWorker1.ReportProgress(0, userState:=My.Resources.ProgressWaitForTweenExit)
+        System.Threading.Thread.Sleep(WaitTime) ' スリープ
+
+        Dim ImagePath As New ArrayList()
+
+        'TweenUp.exeと同じフォルダのTween.exeは無条件に対象
+        ImagePath.Add(Path.Combine(TWEENEXEPATH, My.Resources.FilenameTweenExe))
+
+        ' Tween という名前のプロセスを取得
+        Dim ps As Process() = Process.GetProcessesByName(My.Resources.WaitProcessName)
+        Dim p As Process
+
+        '       Console.WriteLine("取得開始")
+
+        ' コレクションをスキャン
+        For Each p In ps
+            If ImagePath.Contains(p.MainModule.FileName) = True Then
+                '' 終了指示
+                'If Not p.CloseMainWindow() Then
+                '    'アイコン化、ダイアログ表示など、終了を受け付けられる状態ではない。
+                '    Throw New ApplicationException(My.Resources.TimeOutException)
+                'End If
+                If Not p.WaitForExit(30000) Then
+                    ' 強制終了
+                    'p.Kill()
+                    'If Not p.WaitForExit(10000) Then
+                    ' だいたい30秒ぐらい(適当)たってもだめなら例外を発生させる
+                    Throw New ApplicationException(My.Resources.TimeOutException)
+                    'End If
+                End If
+                Exit For
+            End If
+        Next
+
+        'BackgroundWorker1.ReportProgress(0, userState:=My.Resources.ProgressProcessKill)
+        'Thread.Sleep(WaitTime) ' スリープ
+
+        ' 「Tweenの終了を検出しました」
+        BackgroundWorker1.ReportProgress(0, userState:=My.Resources.ProgressDetectTweenExit)
+
+        Thread.Sleep(WaitTime) ' スリープ
+
+        ' 設定ファイルのバックアップ
+        BackgroundWorker1.ReportProgress(0, userState:=My.Resources.ProgressBackup)
+        BackupConfigurationFile()
+        DeleteOldFiles()
+        Thread.Sleep(WaitTime)
+
+        BackgroundWorker1.ReportProgress(0, userState:=My.Resources.ProgressCopying)
+        For Each DstFile In ImagePath
+            Dim SrcFile As String = Path.Combine(SOURCEPATH, My.Resources.FilenameNew)
+            If System.IO.File.Exists(SrcFile) Then
+                ' ImagePathに格納されているファイルにTweenNew.exeを上書き
+                File.Copy(SrcFile, DstFile.ToString, True)
+                ' TweenNew.exeを削除
+                File.Delete(Path.Combine(SOURCEPATH, My.Resources.FilenameNew))
+            End If
+
+            For Each cul As String In cultures
+                Dim SrcFileRes As String = Path.Combine(Path.Combine(SOURCEPATH, cul), My.Resources.FilenameResourceNew)
+                Dim DstFileRes As String = Path.Combine(Path.Combine(TWEENEXEPATH, cul), My.Resources.FilenameResourceDll)
+
+                If System.IO.File.Exists(SrcFileRes) Then
+                    ' リソースフォルダが更新先に存在しない場合は作成する
+                    If Not Directory.Exists(Path.Combine(TWEENEXEPATH, cul)) Then
+                        Directory.CreateDirectory(Path.Combine(TWEENEXEPATH, cul))
+                    End If
+                    ' リソースファイルの上書き
+                    If File.Exists(SrcFileRes) Then
+                        File.Copy(SrcFileRes, DstFileRes, True)
+                        ' リソースファイル削除
+                        File.Delete(SrcFileRes)
+                    End If
+                End If
+            Next
+            Dim SrcFileDll As String = Path.Combine(SOURCEPATH, My.Resources.FilenameDllNew)
+            Dim DstFileDll As String = Path.Combine(TWEENEXEPATH, My.Resources.FilenameDll)
+            If System.IO.File.Exists(SrcFileDll) Then
+                File.Copy(SrcFileDll, DstFileDll, True)
+                File.Delete(SrcFileDll)
+            End If
+        Next
+
+        Thread.Sleep(WaitTime) ' スリープ
+
+
+        ' ネイティブイメージにコンパイル
+        'Call GenerateNativeImage()
+
+        ' 「新しいTweenを起動しています」
+        BackgroundWorker1.ReportProgress(0, userState:=My.Resources.ProgressExecuteTween)
+
+        Process.Start(Path.Combine(TWEENEXEPATH, My.Resources.FilenameTweenExe))
+
+    End Sub
+
+    Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
+        If (e.Error IsNot Nothing) Then
+            ' 例外が発生していた場合はthrowする
+            Throw e.Error
+        End If
+
+        Me.Close()
+    End Sub
+
+    Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
+        ' 進行状況を書き直す 同時にVisibleにする
+        LabelProgress.Text = e.UserState.ToString
+
+
+        ' ラベルコントロールをセンタリング
+        LabelProgress.Left = (Me.ClientSize.Width - LabelProgress.Size.Width) \ 2
+
+        LabelProgress.Refresh()
+        LabelProgress.Visible = True
+
+    End Sub
+#If 0 Then
+    Private Sub GenerateNativeImage()
+        ' Tween.exeをプリコンパイル
+        Try
+            Dim psi = New ProcessStartInfo()
+
+            psi.Arguments = "/nologo /silent " + Chr(34) + Path.Combine(TWEENEXEPATH, My.Resources.FilenameTweenExe) + Chr(34)
+            psi.FileName = Path.Combine(System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory(), "ngen.exe")
+            psi.WindowStyle = ProcessWindowStyle.Hidden
+            Process.Start(psi).WaitForExit()
+        Catch
+
+        End Try
+
+    End Sub
+#End If
+End Class
diff --git a/TweenUp/My Project/Application.Designer.vb b/TweenUp/My Project/Application.Designer.vb
new file mode 100644 (file)
index 0000000..d3efd7a
--- /dev/null
@@ -0,0 +1,38 @@
+'------------------------------------------------------------------------------
+' <auto-generated>
+'     このコードはツールによって生成されました。
+'     ランタイム バージョン:4.0.30319.1
+'
+'     このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
+'     コードが再生成されるときに損失したりします。
+' </auto-generated>
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+    
+    'メモ: このファイルは自動生成されました。直接変更しないでください。変更したり、
+    ' ビルド エラーが発生した場合は、プロジェクト デザイナー へ移動し (プロジェクト
+    ' プロパティに移動するか、またはソリューション エクスプローラーのマイ プロジェクト
+    ' ノード上でダブルクリック)、アプリケーション タブ上で変更を行います。
+    '
+    Partial Friend Class MyApplication
+        
+        <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
+        Public Sub New()
+            MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
+            Me.IsSingleInstance = false
+            Me.EnableVisualStyles = true
+            Me.SaveMySettingsOnExit = false
+            Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
+        End Sub
+        
+        <Global.System.Diagnostics.DebuggerStepThroughAttribute()>  _
+        Protected Overrides Sub OnCreateMainForm()
+            Me.MainForm = Global.TweenUp.Form1
+        End Sub
+    End Class
+End Namespace
diff --git a/TweenUp/My Project/Application.myapp b/TweenUp/My Project/Application.myapp
new file mode 100644 (file)
index 0000000..972bf18
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <MySubMain>true</MySubMain>
+  <MainForm>Form1</MainForm>
+  <SingleInstance>false</SingleInstance>
+  <ShutdownMode>0</ShutdownMode>
+  <EnableVisualStyles>true</EnableVisualStyles>
+  <AuthenticationMode>0</AuthenticationMode>
+  <SaveMySettingsOnExit>false</SaveMySettingsOnExit>
+</MyApplicationData>
\ No newline at end of file
diff --git a/TweenUp/My Project/AssemblyInfo.vb b/TweenUp/My Project/AssemblyInfo.vb
new file mode 100644 (file)
index 0000000..7c0b959
--- /dev/null
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' アセンブリに関する一般情報は以下の属性セットをとおして制御されます。 
+' アセンブリに関連付けられている情報を変更するには、
+' これらの属性値を変更してください。
+
+' アセンブリ属性の値を確認します。
+
+<Assembly: AssemblyTitle("TweenUp")> 
+<Assembly: AssemblyDescription("Tweenアップデータ")> 
+<Assembly: AssemblyCompany("")> 
+<Assembly: AssemblyProduct("TweenUp")> 
+<Assembly: AssemblyCopyright("syo68k")> 
+<Assembly: AssemblyTrademark("")> 
+
+<Assembly: ComVisible(False)>
+
+'このプロジェクトが COM に公開される場合、次の GUID がタイプ ライブラリの ID になります。
+<Assembly: Guid("f49350f8-90e7-4f0e-9a05-569e25f8e335")> 
+
+' アセンブリのバージョン情報は、以下の 4 つの値で構成されています:
+'
+'      Major Version
+'      Minor Version 
+'      Build Number
+'      Revision
+'
+' すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を 
+' 既定値にすることができます:
+' <Assembly: AssemblyVersion("1.0.*")> 
+
+<Assembly: AssemblyVersion("1.0.0.13")> 
+<Assembly: AssemblyFileVersion("1.0.0.13")> 
diff --git a/TweenUp/My Project/Resources.Designer.vb b/TweenUp/My Project/Resources.Designer.vb
new file mode 100644 (file)
index 0000000..db845e1
--- /dev/null
@@ -0,0 +1,243 @@
+'------------------------------------------------------------------------------
+' <auto-generated>
+'     このコードはツールによって生成されました。
+'     ランタイム バージョン:4.0.30319.1
+'
+'     このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
+'     コードが再生成されるときに損失したりします。
+' </auto-generated>
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+Imports System
+
+Namespace My.Resources
+    
+    'このクラスは StronglyTypedResourceBuilder クラスが ResGen
+    'または Visual Studio のようなツールを使用して自動生成されました。
+    'メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に
+    'ResGen を実行し直すか、または VS プロジェクトをビルドし直します。
+    '''<summary>
+    '''  ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。
+    '''</summary>
+    <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"),  _
+     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
+     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _
+     Global.Microsoft.VisualBasic.HideModuleNameAttribute()>  _
+    Friend Module Resources
+        
+        Private resourceMan As Global.System.Resources.ResourceManager
+        
+        Private resourceCulture As Global.System.Globalization.CultureInfo
+        
+        '''<summary>
+        '''  このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。
+        '''</summary>
+        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
+        Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+            Get
+                If Object.ReferenceEquals(resourceMan, Nothing) Then
+                    Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("TweenUp.Resources", GetType(Resources).Assembly)
+                    resourceMan = temp
+                End If
+                Return resourceMan
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  厳密に型指定されたこのリソース クラスを使用して、すべての検索リソースに対し、
+        '''  現在のスレッドの CurrentUICulture プロパティをオーバーライドします。
+        '''</summary>
+        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
+        Friend Property Culture() As Global.System.Globalization.CultureInfo
+            Get
+                Return resourceCulture
+            End Get
+            Set
+                resourceCulture = value
+            End Set
+        End Property
+        
+        '''<summary>
+        '''  アップデート中にエラーが発生しました。 TweenUp.logにエラーを出力します。 に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property ExceptionMessage() As String
+            Get
+                Return ResourceManager.GetString("ExceptionMessage", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  アップデートエラー発生 に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property ExceptionTitle() As String
+            Get
+                Return ResourceManager.GetString("ExceptionTitle", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Tween.XmlSerializers.dll に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property FilenameDll() As String
+            Get
+                Return ResourceManager.GetString("FilenameDll", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  TweenNew.XmlSerializers.dll に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property FilenameDllNew() As String
+            Get
+                Return ResourceManager.GetString("FilenameDllNew", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  TweenNew.exe に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property FilenameNew() As String
+            Get
+                Return ResourceManager.GetString("FilenameNew", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Tween.resources.dll に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property FilenameResourceDll() As String
+            Get
+                Return ResourceManager.GetString("FilenameResourceDll", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Tween.resourcesNew.dll に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property FilenameResourceNew() As String
+            Get
+                Return ResourceManager.GetString("FilenameResourceNew", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Tween.exe に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property FilenameTweenExe() As String
+            Get
+                Return ResourceManager.GetString("FilenameTweenExe", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Tweenアップデート に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property FormTitle() As String
+            Get
+                Return ResourceManager.GetString("FormTitle", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  このまましばらくお待ちください。 に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property PleaseWait() As String
+            Get
+                Return ResourceManager.GetString("PleaseWait", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  設定ファイルをバックアップしています。 に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property ProgressBackup() As String
+            Get
+                Return ResourceManager.GetString("ProgressBackup", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  新しいファイルをコピーしています。 に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property ProgressCopying() As String
+            Get
+                Return ResourceManager.GetString("ProgressCopying", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  複数起動しているTweenを終了させます。 に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property ProgressDetectMultipleInstance() As String
+            Get
+                Return ResourceManager.GetString("ProgressDetectMultipleInstance", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Tweenの終了を検出しました。 に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property ProgressDetectTweenExit() As String
+            Get
+                Return ResourceManager.GetString("ProgressDetectTweenExit", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  新しいTweenを起動しています。 に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property ProgressExecuteTween() As String
+            Get
+                Return ResourceManager.GetString("ProgressExecuteTween", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Tweenが終了しません。強制終了を試みます。 に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property ProgressProcessKill() As String
+            Get
+                Return ResourceManager.GetString("ProgressProcessKill", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Tweenの終了を待っています。 に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property ProgressWaitForTweenExit() As String
+            Get
+                Return ResourceManager.GetString("ProgressWaitForTweenExit", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Tweenを終了できないようです。タスクマネージャのプロセスタブからTween.exeを強制終了させるか、Windowsを再起動してみてください。 に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property TimeOutException() As String
+            Get
+                Return ResourceManager.GetString("TimeOutException", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Tweenを更新しています・・・ に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property TweenUpdating() As String
+            Get
+                Return ResourceManager.GetString("TweenUpdating", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  Tween に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property WaitProcessName() As String
+            Get
+                Return ResourceManager.GetString("WaitProcessName", resourceCulture)
+            End Get
+        End Property
+    End Module
+End Namespace
diff --git a/TweenUp/My Project/Resources.resx b/TweenUp/My Project/Resources.resx
new file mode 100644 (file)
index 0000000..fa2c355
--- /dev/null
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="ExceptionMessage" xml:space="preserve">
+    <value>アップデート中にエラーが発生しました。 TweenUp.logにエラーを出力します。</value>
+  </data>
+  <data name="ExceptionTitle" xml:space="preserve">
+    <value>アップデートエラー発生</value>
+  </data>
+  <data name="FilenameDll" xml:space="preserve">
+    <value>Tween.XmlSerializers.dll</value>
+  </data>
+  <data name="FilenameDllNew" xml:space="preserve">
+    <value>TweenNew.XmlSerializers.dll</value>
+  </data>
+  <data name="FilenameNew" xml:space="preserve">
+    <value>TweenNew.exe</value>
+  </data>
+  <data name="FilenameResourceDll" xml:space="preserve">
+    <value>Tween.resources.dll</value>
+  </data>
+  <data name="FilenameResourceNew" xml:space="preserve">
+    <value>Tween.resourcesNew.dll</value>
+  </data>
+  <data name="FilenameTweenExe" xml:space="preserve">
+    <value>Tween.exe</value>
+  </data>
+  <data name="FormTitle" xml:space="preserve">
+    <value>Tweenアップデート</value>
+  </data>
+  <data name="PleaseWait" xml:space="preserve">
+    <value>このまましばらくお待ちください。</value>
+  </data>
+  <data name="ProgressBackup" xml:space="preserve">
+    <value>設定ファイルをバックアップしています。</value>
+  </data>
+  <data name="ProgressCopying" xml:space="preserve">
+    <value>新しいファイルをコピーしています。</value>
+  </data>
+  <data name="ProgressDetectMultipleInstance" xml:space="preserve">
+    <value>複数起動しているTweenを終了させます。</value>
+  </data>
+  <data name="ProgressDetectTweenExit" xml:space="preserve">
+    <value>Tweenの終了を検出しました。</value>
+  </data>
+  <data name="ProgressExecuteTween" xml:space="preserve">
+    <value>新しいTweenを起動しています。</value>
+  </data>
+  <data name="ProgressProcessKill" xml:space="preserve">
+    <value>Tweenが終了しません。強制終了を試みます。</value>
+  </data>
+  <data name="ProgressWaitForTweenExit" xml:space="preserve">
+    <value>Tweenの終了を待っています。</value>
+  </data>
+  <data name="TimeOutException" xml:space="preserve">
+    <value>Tweenを終了できないようです。タスクマネージャのプロセスタブからTween.exeを強制終了させるか、Windowsを再起動してみてください。</value>
+  </data>
+  <data name="TweenUpdating" xml:space="preserve">
+    <value>Tweenを更新しています・・・</value>
+  </data>
+  <data name="WaitProcessName" xml:space="preserve">
+    <value>Tween</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/TweenUp/My Project/Settings.Designer.vb b/TweenUp/My Project/Settings.Designer.vb
new file mode 100644 (file)
index 0000000..129a074
--- /dev/null
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+' <auto-generated>
+'     このコードはツールによって生成されました。
+'     ランタイム バージョン:4.0.30319.1
+'
+'     このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
+'     コードが再生成されるときに損失したりします。
+' </auto-generated>
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+    
+    <Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _
+     Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0"),  _
+     Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
+    Partial Friend NotInheritable Class MySettings
+        Inherits Global.System.Configuration.ApplicationSettingsBase
+        
+        Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+        
+#Region "My.Settings 自動保存機能"
+#If _MyType = "WindowsForms" Then
+    Private Shared addedHandler As Boolean
+
+    Private Shared addedHandlerLockObject As New Object
+
+    <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
+    Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+        If My.Application.SaveMySettingsOnExit Then
+            My.Settings.Save()
+        End If
+    End Sub
+#End If
+#End Region
+        
+        Public Shared ReadOnly Property [Default]() As MySettings
+            Get
+                
+#If _MyType = "WindowsForms" Then
+               If Not addedHandler Then
+                    SyncLock addedHandlerLockObject
+                        If Not addedHandler Then
+                            AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+                            addedHandler = True
+                        End If
+                    End SyncLock
+                End If
+#End If
+                Return defaultInstance
+            End Get
+        End Property
+    End Class
+End Namespace
+
+Namespace My
+    
+    <Global.Microsoft.VisualBasic.HideModuleNameAttribute(),  _
+     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
+     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()>  _
+    Friend Module MySettingsProperty
+        
+        <Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")>  _
+        Friend ReadOnly Property Settings() As Global.TweenUp.My.MySettings
+            Get
+                Return Global.TweenUp.My.MySettings.Default
+            End Get
+        End Property
+    End Module
+End Namespace
diff --git a/TweenUp/My Project/Settings.settings b/TweenUp/My Project/Settings.settings
new file mode 100644 (file)
index 0000000..85b890b
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>
diff --git a/TweenUp/My Project/app.manifest b/TweenUp/My Project/app.manifest
new file mode 100644 (file)
index 0000000..3b4c646
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+    <security>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <!-- UAC マニフェスト オプション
+             Windows のユーザー アカウント制御のレベルを変更するには、
+             requestedExecutionLevel ノードを以下のいずれかで置換します。
+
+        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
+        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
+        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
+
+            下位互換性のためにファイルおよびレジストリの仮想化を
+            利用する場合は、requestedExecutionLevel ノードを削除してください。
+        -->
+        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+</asmv1:assembly>
diff --git a/TweenUp/Resources/re01.ico b/TweenUp/Resources/re01.ico
new file mode 100644 (file)
index 0000000..de3f9dd
Binary files /dev/null and b/TweenUp/Resources/re01.ico differ
diff --git a/TweenUp/TweenUp.vbproj b/TweenUp/TweenUp.vbproj
new file mode 100644 (file)
index 0000000..07e9824
--- /dev/null
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <StartupObject>TweenUp.My.MyApplication</StartupObject>
+    <RootNamespace>TweenUp</RootNamespace>
+    <AssemblyName>TweenUp</AssemblyName>
+    <FileAlignment>512</FileAlignment>
+    <MyType>WindowsForms</MyType>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <OptionExplicit>On</OptionExplicit>
+    <OptionCompare>Binary</OptionCompare>
+    <OptionStrict>On</OptionStrict>
+    <OptionInfer>On</OptionInfer>
+    <ApplicationManifest>My Project\app.manifest</ApplicationManifest>
+    <ApplicationIcon>Resources\re01.ico</ApplicationIcon>
+    <PublishUrl>publish\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>0</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <OldToolsVersion>3.5</OldToolsVersion>
+    <UpgradeBackupLocation />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <DefineDebug>true</DefineDebug>
+    <DefineTrace>true</DefineTrace>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DocumentationFile>TweenUp.xml</DocumentationFile>
+    <NoWarn>42353,42354,42355</NoWarn>
+    <WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
+    <RemoveIntegerChecks>true</RemoveIntegerChecks>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <DefineDebug>false</DefineDebug>
+    <DefineTrace>true</DefineTrace>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DocumentationFile>TweenUp.xml</DocumentationFile>
+    <NoWarn>42353,42354,42355</NoWarn>
+    <WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
+    <RemoveIntegerChecks>true</RemoveIntegerChecks>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Import Include="Microsoft.VisualBasic" />
+    <Import Include="System" />
+    <Import Include="System.Collections" />
+    <Import Include="System.Collections.Generic" />
+    <Import Include="System.Data" />
+    <Import Include="System.Diagnostics" />
+    <Import Include="System.Drawing" />
+    <Import Include="System.Windows.Forms" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="ApplicationEvents.vb" />
+    <Compile Include="Form1.vb">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Form1.Designer.vb">
+      <DependentUpon>Form1.vb</DependentUpon>
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="My Project\AssemblyInfo.vb" />
+    <Compile Include="My Project\Application.Designer.vb">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Application.myapp</DependentUpon>
+    </Compile>
+    <Compile Include="My Project\Resources.Designer.vb">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="My Project\Settings.Designer.vb">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Form1.resx">
+      <DependentUpon>Form1.vb</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="My Project\Resources.resx">
+      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
+      <CustomToolNamespace>My.Resources</CustomToolNamespace>
+      <SubType>Designer</SubType>
+      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
+    </EmbeddedResource>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="My Project\app.manifest" />
+    <None Include="My Project\Application.myapp">
+      <Generator>MyApplicationCodeGenerator</Generator>
+      <LastGenOutput>Application.Designer.vb</LastGenOutput>
+    </None>
+    <None Include="My Project\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <CustomToolNamespace>My</CustomToolNamespace>
+      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Resources\re01.ico" />
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file