diff --git a/Automation/App.config b/Automation/App.config
new file mode 100644
index 00000000..5534e287
--- /dev/null
+++ b/Automation/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Automation/Automation.vbproj b/Automation/Automation.vbproj
new file mode 100644
index 00000000..40c4e738
--- /dev/null
+++ b/Automation/Automation.vbproj
@@ -0,0 +1,139 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {483A3DA7-6F7A-4E57-B77F-ED33F4E280C5}
+ WinExe
+ Automation.My.MyApplication
+ Automation
+ Automation
+ 512
+ WindowsForms
+ v4.6.1
+ true
+
+
+ AnyCPU
+ true
+ full
+ true
+ true
+ bin\Debug\
+ Automation.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ AnyCPU
+ pdbonly
+ false
+ true
+ true
+ bin\Release\
+ Automation.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+
+ D:\ProgramFiles\GdPicture.NET 14\Redist\GdPicture.NET\GdPicture.NET.14.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ Form1.vb
+ Form
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ Form1.vb
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
+ {903b2d7d-3b80-4be9-8713-7447b704e1b0}
+ Logging
+
+
+ {5efaef9b-90b9-4f05-9f70-f79ad77fff86}
+ Windows
+
+
+
+
\ No newline at end of file
diff --git a/Automation/ClassClipboard.vb b/Automation/ClassClipboard.vb
new file mode 100644
index 00000000..71f2f3fa
--- /dev/null
+++ b/Automation/ClassClipboard.vb
@@ -0,0 +1,68 @@
+Imports System.Runtime.InteropServices
+Public Class ClassClipboardWatcher
+ Inherits NativeWindow
+ Implements IDisposable
+
+ Private Class Win32
+
+ Public Shared Function SetClipboardViewer(ByVal hWnd As IntPtr) As IntPtr
+ End Function
+ End Class
+
+ Const WM_DRAWCLIPBOARD As Integer = &H308
+
+ Public Event ClipboardChanged As EventHandler(Of IDataObject)
+ Public Shared Singleton As New ClassClipboardWatcher
+
+ Private _handle As IntPtr
+
+ Private Sub New()
+ MyBase.CreateHandle(New CreateParams)
+ _handle = Win32.SetClipboardViewer(Handle)
+ End Sub
+
+ Protected Overrides Sub WndProc(ByRef m As Message)
+
+ Select Case m.Msg
+ Case WM_DRAWCLIPBOARD
+ Dim oData As IDataObject = Clipboard.GetDataObject
+ RaiseEvent ClipboardChanged(Me, oData)
+ End Select
+ MyBase.WndProc(m)
+ End Sub
+
+#Region "IDisposable Support"
+ ' Für diese Klasse ist korrekte Ressourcenbereinigung besonders wichtig, da
+ ' mit systemübergreifenden Ressourcen gearbeitet wird
+
+ ' So ermitteln Sie überflüssige Aufrufe
+ Private disposedValue As Boolean = False
+
+ Protected Overridable Sub Dispose(ByVal disposing As Boolean)
+ If Not disposedValue Then
+ If disposing Then
+ ' TODO: Verwaltete Ressourcen freigeben, wenn sie explizit
+ ' aufgerufen werden
+ End If
+ MyBase.DestroyHandle()
+ Dim H As IntPtr = Win32.SetClipboardViewer(_handle)
+ End If
+ disposedValue = True
+ End Sub
+
+ ' Dieser Code wird von Visual Basic hinzugefügt, um das Dispose-Muster
+ ' richtig zu implementieren.
+ Public Sub Dispose() Implements IDisposable.Dispose
+ ' Sie sollten diesen Code nicht ändern, sondern stattdessen ihren
+ ' Bereinigungscode oben in
+ ' Dispose(ByVal disposing As Boolean) einfügen.
+ Dispose(True)
+ GC.SuppressFinalize(Me)
+ End Sub
+
+ Protected Overrides Sub Finalize()
+ MyBase.Finalize()
+ Dispose(False)
+ End Sub
+#End Region
+End Class
diff --git a/Automation/Form1.Designer.vb b/Automation/Form1.Designer.vb
new file mode 100644
index 00000000..01d27c1b
--- /dev/null
+++ b/Automation/Form1.Designer.vb
@@ -0,0 +1,215 @@
+
+Partial Class Form1
+ Inherits System.Windows.Forms.Form
+
+ 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
+
+ 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
+
+ 'Wird vom Windows Form-Designer benötigt.
+ Private components As System.ComponentModel.IContainer
+
+ 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
+ 'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
+ 'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
+
+ Private Sub InitializeComponent()
+ Me.components = New System.ComponentModel.Container()
+ Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
+ Me.TextBox1 = New System.Windows.Forms.TextBox()
+ Me.Label4 = New System.Windows.Forms.Label()
+ Me.Label5 = New System.Windows.Forms.Label()
+ Me.Label6 = New System.Windows.Forms.Label()
+ Me.Label7 = New System.Windows.Forms.Label()
+ Me.TextBox9 = New System.Windows.Forms.TextBox()
+ Me.TextBox10 = New System.Windows.Forms.TextBox()
+ Me.TextBox11 = New System.Windows.Forms.TextBox()
+ Me.TextBox12 = New System.Windows.Forms.TextBox()
+ Me.Label21 = New System.Windows.Forms.Label()
+ Me.TextBox6 = New System.Windows.Forms.TextBox()
+ Me.TextBox7 = New System.Windows.Forms.TextBox()
+ Me.TextBox8 = New System.Windows.Forms.TextBox()
+ Me.ComboBox1 = New System.Windows.Forms.ComboBox()
+ Me.Label1 = New System.Windows.Forms.Label()
+ Me.SuspendLayout()
+ '
+ 'Timer1
+ '
+ '
+ 'TextBox1
+ '
+ Me.TextBox1.Location = New System.Drawing.Point(12, 12)
+ Me.TextBox1.Name = "TextBox1"
+ Me.TextBox1.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox1.TabIndex = 0
+ Me.TextBox1.Text = "Top Left"
+ '
+ 'Label4
+ '
+ Me.Label4.AutoSize = True
+ Me.Label4.Location = New System.Drawing.Point(183, 105)
+ Me.Label4.Name = "Label4"
+ Me.Label4.Size = New System.Drawing.Size(25, 13)
+ Me.Label4.TabIndex = 6
+ Me.Label4.Text = "Left"
+ '
+ 'Label5
+ '
+ Me.Label5.AutoSize = True
+ Me.Label5.Location = New System.Drawing.Point(183, 183)
+ Me.Label5.Name = "Label5"
+ Me.Label5.Size = New System.Drawing.Size(40, 13)
+ Me.Label5.TabIndex = 6
+ Me.Label5.Text = "Bottom"
+ '
+ 'Label6
+ '
+ Me.Label6.AutoSize = True
+ Me.Label6.Location = New System.Drawing.Point(183, 157)
+ Me.Label6.Name = "Label6"
+ Me.Label6.Size = New System.Drawing.Size(26, 13)
+ Me.Label6.TabIndex = 6
+ Me.Label6.Text = "Top"
+ '
+ 'Label7
+ '
+ Me.Label7.AutoSize = True
+ Me.Label7.Location = New System.Drawing.Point(183, 131)
+ Me.Label7.Name = "Label7"
+ Me.Label7.Size = New System.Drawing.Size(32, 13)
+ Me.Label7.TabIndex = 6
+ Me.Label7.Text = "Right"
+ '
+ 'TextBox9
+ '
+ Me.TextBox9.Location = New System.Drawing.Point(231, 102)
+ Me.TextBox9.Name = "TextBox9"
+ Me.TextBox9.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox9.TabIndex = 1
+ '
+ 'TextBox10
+ '
+ Me.TextBox10.Location = New System.Drawing.Point(231, 180)
+ Me.TextBox10.Name = "TextBox10"
+ Me.TextBox10.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox10.TabIndex = 2
+ '
+ 'TextBox11
+ '
+ Me.TextBox11.Location = New System.Drawing.Point(231, 154)
+ Me.TextBox11.Name = "TextBox11"
+ Me.TextBox11.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox11.TabIndex = 3
+ '
+ 'TextBox12
+ '
+ Me.TextBox12.Location = New System.Drawing.Point(231, 128)
+ Me.TextBox12.Name = "TextBox12"
+ Me.TextBox12.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox12.TabIndex = 4
+ '
+ 'Label21
+ '
+ Me.Label21.AutoSize = True
+ Me.Label21.Location = New System.Drawing.Point(183, 77)
+ Me.Label21.Name = "Label21"
+ Me.Label21.Size = New System.Drawing.Size(115, 13)
+ Me.Label21.TabIndex = 8
+ Me.Label21.Text = "CURRENT CONTROL"
+ '
+ 'TextBox6
+ '
+ Me.TextBox6.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
+ Me.TextBox6.Location = New System.Drawing.Point(12, 298)
+ Me.TextBox6.Name = "TextBox6"
+ Me.TextBox6.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox6.TabIndex = 0
+ Me.TextBox6.Text = "Bottom Left"
+ '
+ 'TextBox7
+ '
+ Me.TextBox7.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.TextBox7.Location = New System.Drawing.Point(255, 12)
+ Me.TextBox7.Name = "TextBox7"
+ Me.TextBox7.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox7.TabIndex = 0
+ Me.TextBox7.Text = "TopRight"
+ '
+ 'TextBox8
+ '
+ Me.TextBox8.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.TextBox8.Location = New System.Drawing.Point(255, 298)
+ Me.TextBox8.Name = "TextBox8"
+ Me.TextBox8.Size = New System.Drawing.Size(100, 20)
+ Me.TextBox8.TabIndex = 0
+ Me.TextBox8.Text = "BottomRight"
+ '
+ 'ComboBox1
+ '
+ Me.ComboBox1.FormattingEnabled = True
+ Me.ComboBox1.Items.AddRange(New Object() {"TopLeft", "TopRight", "BottomLeft", "BottomRight"})
+ Me.ComboBox1.Location = New System.Drawing.Point(30, 102)
+ Me.ComboBox1.Name = "ComboBox1"
+ Me.ComboBox1.Size = New System.Drawing.Size(121, 21)
+ Me.ComboBox1.TabIndex = 9
+ '
+ 'Label1
+ '
+ Me.Label1.AutoSize = True
+ Me.Label1.Location = New System.Drawing.Point(27, 86)
+ Me.Label1.Name = "Label1"
+ Me.Label1.Size = New System.Drawing.Size(41, 13)
+ Me.Label1.TabIndex = 8
+ Me.Label1.Text = "Anchor"
+ '
+ 'Form1
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(367, 330)
+ Me.Controls.Add(Me.ComboBox1)
+ Me.Controls.Add(Me.Label1)
+ Me.Controls.Add(Me.Label21)
+ Me.Controls.Add(Me.Label7)
+ Me.Controls.Add(Me.Label6)
+ Me.Controls.Add(Me.Label5)
+ Me.Controls.Add(Me.Label4)
+ Me.Controls.Add(Me.TextBox12)
+ Me.Controls.Add(Me.TextBox11)
+ Me.Controls.Add(Me.TextBox10)
+ Me.Controls.Add(Me.TextBox9)
+ Me.Controls.Add(Me.TextBox6)
+ Me.Controls.Add(Me.TextBox8)
+ Me.Controls.Add(Me.TextBox7)
+ Me.Controls.Add(Me.TextBox1)
+ Me.Name = "Form1"
+ Me.Text = "Form1"
+ Me.ResumeLayout(False)
+ Me.PerformLayout()
+
+ End Sub
+ Friend WithEvents Timer1 As Timer
+ Friend WithEvents TextBox1 As TextBox
+ Friend WithEvents Label4 As Label
+ Friend WithEvents Label5 As Label
+ Friend WithEvents Label6 As Label
+ Friend WithEvents Label7 As Label
+ Friend WithEvents TextBox9 As TextBox
+ Friend WithEvents TextBox10 As TextBox
+ Friend WithEvents TextBox11 As TextBox
+ Friend WithEvents TextBox12 As TextBox
+ Friend WithEvents Label21 As Label
+ Friend WithEvents TextBox6 As TextBox
+ Friend WithEvents TextBox7 As TextBox
+ Friend WithEvents TextBox8 As TextBox
+ Friend WithEvents ComboBox1 As ComboBox
+ Friend WithEvents Label1 As Label
+End Class
diff --git a/Automation/Form1.resx b/Automation/Form1.resx
new file mode 100644
index 00000000..d0d99f42
--- /dev/null
+++ b/Automation/Form1.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/Automation/Form1.vb b/Automation/Form1.vb
new file mode 100644
index 00000000..67190f0f
--- /dev/null
+++ b/Automation/Form1.vb
@@ -0,0 +1,47 @@
+Imports System.Runtime.InteropServices
+Imports DigitalData.Modules.Logging
+Imports DigitalData.Modules.Windows
+
+Public Class Form1
+ Private Logger As Logger
+ Private LogConfig As LogConfig
+
+ Private Watcher As ClassClipboardWatcher
+ Private Window As Window
+
+ Private CurrentAnchor As Window.Anchor = Window.Anchor.TopLeft
+
+ Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
+ Timer1.Interval = 1000
+ Timer1.Enabled = True
+
+ LogConfig = New LogConfig(LogConfig.PathType.AppData)
+ Logger = LogConfig.GetLogger()
+ Window = New Window(LogConfig)
+
+ Watcher = ClassClipboardWatcher.Singleton
+ AddHandler Watcher.ClipboardChanged, AddressOf Watcher_ClipboardChanged
+ End Sub
+
+ Private Sub Watcher_ClipboardChanged(sender As Object, e As IDataObject)
+ Dim oControl As Window.RectangleInfo = Window.GetFocusedControlLocation(CurrentAnchor)
+
+ TextBox9.Text = oControl.Left
+ TextBox12.Text = oControl.Right
+ TextBox11.Text = oControl.Top
+ TextBox10.Text = oControl.Bottom
+ End Sub
+
+ Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
+ Select Case ComboBox1.Text
+ Case "TopLeft"
+ CurrentAnchor = Window.Anchor.TopLeft
+ Case "TopRight"
+ CurrentAnchor = Window.Anchor.TopRight
+ Case "BottomLeft"
+ CurrentAnchor = Window.Anchor.BottomLeft
+ Case "BottomRight"
+ CurrentAnchor = Window.Anchor.BottomRight
+ End Select
+ End Sub
+End Class
diff --git a/Automation/My Project/Application.Designer.vb b/Automation/My Project/Application.Designer.vb
new file mode 100644
index 00000000..79646505
--- /dev/null
+++ b/Automation/My Project/Application.Designer.vb
@@ -0,0 +1,38 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ 'NOTE: This file is auto-generated; do not modify it directly. To make changes,
+ ' or if you encounter build errors in this file, go to the Project Designer
+ ' (go to Project Properties or double-click the My Project node in
+ ' Solution Explorer), and make changes on the Application tab.
+ '
+ Partial Friend Class MyApplication
+
+ _
+ Public Sub New()
+ MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
+ Me.IsSingleInstance = false
+ Me.EnableVisualStyles = true
+ Me.SaveMySettingsOnExit = true
+ Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
+ End Sub
+
+ _
+ Protected Overrides Sub OnCreateMainForm()
+ Me.MainForm = Global.Automation.Form1
+ End Sub
+ End Class
+End Namespace
diff --git a/Automation/My Project/Application.myapp b/Automation/My Project/Application.myapp
new file mode 100644
index 00000000..1243847f
--- /dev/null
+++ b/Automation/My Project/Application.myapp
@@ -0,0 +1,11 @@
+
+
+ true
+ Form1
+ false
+ 0
+ true
+ 0
+ 0
+ true
+
diff --git a/Automation/My Project/AssemblyInfo.vb b/Automation/My Project/AssemblyInfo.vb
new file mode 100644
index 00000000..da3bda89
--- /dev/null
+++ b/Automation/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' Allgemeine Informationen über eine Assembly werden über die folgenden
+' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+' die einer Assembly zugeordnet sind.
+
+' Werte der Assemblyattribute überprüfen
+
+
+
+
+
+
+
+
+
+
+'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird.
+
+
+' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+'
+' Hauptversion
+' Nebenversion
+' Buildnummer
+' Revision
+'
+' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+' übernehmen, indem Sie "*" eingeben:
+'
+
+
+
diff --git a/Automation/My Project/Resources.Designer.vb b/Automation/My Project/Resources.Designer.vb
new file mode 100644
index 00000000..3ed5a386
--- /dev/null
+++ b/Automation/My Project/Resources.Designer.vb
@@ -0,0 +1,62 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My.Resources
+
+ 'This class was auto-generated by the StronglyTypedResourceBuilder
+ 'class via a tool like ResGen or Visual Studio.
+ 'To add or remove a member, edit your .ResX file then rerun ResGen
+ 'with the /str option, or rebuild your VS project.
+ '''
+ ''' A strongly-typed resource class, for looking up localized strings, etc.
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' Returns the cached ResourceManager instance used by this class.
+ '''
+ _
+ 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("Automation.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' Overrides the current thread's CurrentUICulture property for all
+ ''' resource lookups using this strongly typed resource class.
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set(ByVal value As Global.System.Globalization.CultureInfo)
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/Automation/My Project/Resources.resx b/Automation/My Project/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/Automation/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Automation/My Project/Settings.Designer.vb b/Automation/My Project/Settings.Designer.vb
new file mode 100644
index 00000000..8c88c5f6
--- /dev/null
+++ b/Automation/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ 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 Auto-Save Functionality"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ 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
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.Automation.My.MySettings
+ Get
+ Return Global.Automation.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/Automation/My Project/Settings.settings b/Automation/My Project/Settings.settings
new file mode 100644
index 00000000..85b890b3
--- /dev/null
+++ b/Automation/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+