diff --git a/WindowsFormsApplication1/App.config b/WindowsFormsApplication1/App.config new file mode 100755 index 0000000..fad249e --- /dev/null +++ b/WindowsFormsApplication1/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/WindowsFormsApplication1/Form1.Designer.cs b/WindowsFormsApplication1/Form1.Designer.cs new file mode 100755 index 0000000..825dcfa --- /dev/null +++ b/WindowsFormsApplication1/Form1.Designer.cs @@ -0,0 +1,144 @@ +namespace NVTest +{ + partial class NVType + { + /// + /// 必要なデザイナー変数です。 + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 使用中のリソースをすべてクリーンアップします。 + /// + /// マネージ リソースが破棄される場合 true、破棄されない場合は false です。 + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows フォーム デザイナーで生成されたコード + + /// + /// デザイナー サポートに必要なメソッドです。このメソッドの内容を + /// コード エディターで変更しないでください。 + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.indicator2 = new System.Windows.Forms.Label(); + this.indicator1 = new System.Windows.Forms.Label(); + this.bar = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("MS UI Gothic", 380.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128))); + this.label1.ForeColor = System.Drawing.SystemColors.ControlLightLight; + this.label1.Location = new System.Drawing.Point(11, 9); + this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(323, 507); + this.label1.TabIndex = 0; + this.label1.Text = "!"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // indicator2 + // + this.indicator2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.indicator2.Font = new System.Drawing.Font("MS UI Gothic", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128))); + this.indicator2.ForeColor = System.Drawing.SystemColors.ButtonHighlight; + this.indicator2.Location = new System.Drawing.Point(417, 469); + this.indicator2.Name = "indicator2"; + this.indicator2.Size = new System.Drawing.Size(47, 33); + this.indicator2.TabIndex = 1; + this.indicator2.Text = "--"; + this.indicator2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // indicator1 + // + this.indicator1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.indicator1.AutoSize = true; + this.indicator1.Font = new System.Drawing.Font("MS UI Gothic", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128))); + this.indicator1.ForeColor = System.Drawing.SystemColors.ButtonHighlight; + this.indicator1.Location = new System.Drawing.Point(417, 525); + this.indicator1.Name = "indicator1"; + this.indicator1.Size = new System.Drawing.Size(47, 33); + this.indicator1.TabIndex = 1; + this.indicator1.Text = "60"; + this.indicator1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // bar + // + this.bar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.bar.AutoSize = true; + this.bar.Font = new System.Drawing.Font("MS UI Gothic", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128))); + this.bar.ForeColor = System.Drawing.SystemColors.ButtonHighlight; + this.bar.Location = new System.Drawing.Point(401, 502); + this.bar.Name = "bar"; + this.bar.Size = new System.Drawing.Size(79, 33); + this.bar.TabIndex = 1; + this.bar.Text = "──"; + // + // label2 + // + this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("MS UI Gothic", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128))); + this.label2.ForeColor = System.Drawing.SystemColors.ButtonHighlight; + this.label2.Location = new System.Drawing.Point(391, 9); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(0, 33); + this.label2.TabIndex = 1; + // + // label3 + // + this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.label3.Font = new System.Drawing.Font("MS UI Gothic", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128))); + this.label3.ForeColor = System.Drawing.SystemColors.ButtonHighlight; + this.label3.Location = new System.Drawing.Point(25, 525); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(355, 33); + this.label3.TabIndex = 1; + this.label3.Text = "_"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // NVType + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.ActiveCaptionText; + this.ClientSize = new System.Drawing.Size(501, 567); + this.Controls.Add(this.label3); + this.Controls.Add(this.indicator1); + this.Controls.Add(this.label2); + this.Controls.Add(this.indicator2); + this.Controls.Add(this.bar); + this.Controls.Add(this.label1); + this.Name = "NVType"; + this.Text = "NVTyping"; + this.Load += new System.EventHandler(this.Form1_Load); + this.Shown += new System.EventHandler(this.Form1_Shown); + this.Resize += new System.EventHandler(this.NVType_Resize); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label indicator2; + private System.Windows.Forms.Label indicator1; + private System.Windows.Forms.Label bar; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + } +} + diff --git a/WindowsFormsApplication1/Form1.cs b/WindowsFormsApplication1/Form1.cs new file mode 100755 index 0000000..f9f3209 --- /dev/null +++ b/WindowsFormsApplication1/Form1.cs @@ -0,0 +1,351 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace NVTest +{ + public partial class NVType : Form + { + [System.Runtime.InteropServices.DllImport("winmm.dll")] + private static extern int mciSendString(String command, + StringBuilder buffer, int bufferSize, IntPtr hwndCallback); + delegate int mciSendStringCallBack(string strCommand, + StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback); + + const string aliasName = "MediaFile"; + //const string prefix = "..\\..\\__output\\"; + const string prefix = "__output\\"; + + int default_challenge = 60; + bool game_start = false; + DateTime start_time; + DateTime[] score = new DateTime[1]; + char next_ans; + int challenge_left; + IDictionary> correct, mistake; + System.Diagnostics.Stopwatch sw; + + public NVType() + { + InitializeComponent(); + KeyPreview = true; + KeyPress += Form1_KeyPress1; + FormClosing += NVType_FormClosing; + correct = new Dictionary>(); + mistake = new Dictionary>(); + for (char c = 'a'; c <= 'z'; c++) + { + correct[c] = new List(); + mistake[c] = new List(); + } + sw = new System.Diagnostics.Stopwatch(); + } + + private void NVType_FormClosing(object sender, FormClosingEventArgs e) + { + if (talker_thread != null) + { + talker_thread.Abort(); + } + } + + private void stopsound() + { + string cmd; + cmd = "stop " + aliasName; + mciSendString(cmd, null, 0, IntPtr.Zero); + cmd = "close " + aliasName; + mciSendString(cmd, null, 0, IntPtr.Zero); + } + + private void stopsound_thread() + { + string cmd; + cmd = "stop " + aliasName; + invoke_thread(new object[] { cmd, null, 0, IntPtr.Zero }); + cmd = "close " + aliasName; + invoke_thread(new object[] { cmd, null, 0, IntPtr.Zero }); + } + + private void playsound(string fileName, bool waitp = false) + { + stopsound(); + string cmd; + + //ファイルを開く + cmd = "open \"" + fileName + "\" type mpegvideo alias " + aliasName; + if (mciSendString(cmd, null, 0, IntPtr.Zero) != 0) + return; + //再生する + cmd = "play " + aliasName; + mciSendString(cmd, null, 0, IntPtr.Zero); + if (waitp) + { + wait(); + } + } + + private void playsound_thread(string fileName, bool waitp = false) + { + string cmd; + int ret; + stopsound_thread(); + //ファイルを開く + cmd = "open \"" + fileName + "\" type mpegvideo alias " + aliasName; + Console.WriteLine(cmd); + ret = invoke_thread(new object[] { cmd, null, 0, IntPtr.Zero }); + if (ret != 0) + return; + //再生する + cmd = "play " + aliasName; + Console.WriteLine(cmd); + ret = invoke_thread(new object[] { cmd, null, 0, IntPtr.Zero }); + if (waitp) + { + wait_thread(); + } + } + + private int invoke_thread(object [] args) + { + int ret; + if (InvokeRequired) + { + mciSendStringCallBack d = new mciSendStringCallBack(mciSendString); + object e = this.Invoke(d, args); + ret = (int)e; + } + else + { + ret = mciSendString((string)args[0], (StringBuilder) args[1], + (int)args[2], (IntPtr)args[3]); + } + return ret; + } + + private void wait_thread() + { + string cmd; + StringBuilder buffer = new StringBuilder(); + int ret; + do + { + cmd = "status " + aliasName + " mode"; + ret = invoke_thread(new object[] { cmd, buffer,30, IntPtr.Zero }); + } while (buffer.ToString() == "playing"); + } + + private void wait() + { + string cmd; + StringBuilder ret = new StringBuilder(); + do + { + cmd = "status " + aliasName + " mode"; + mciSendString(cmd, ret, 30, IntPtr.Zero); + } while (ret.ToString() == "playing"); + } + + private void number(int a) + { + string fileName; + double digits = (int)Math.Log10(a); + int div; + while (a > 0) + { + div = (int)Math.Pow(10, digits); + fileName = prefix + (a / div).ToString() + ".mp3"; + if (digits == 0 || a / div != 1) + playsound(fileName, true); + if (digits == 2) + { + playsound(prefix + "100.mp3", true); + } + else if (digits == 1) + { + playsound(prefix + "10.mp3", true); + } + a -= (a / div) * div; + digits--; + } + } + + private void greeting() + { + playsound_thread(prefix + "opening.mp3", true); + playsound_thread(prefix + "description.mp3", true); + playsound_thread(prefix + "hitanykey.mp3", true); + } + + private void dictate(char f) + { + string filename = prefix + f + ".mp3"; + playsound(filename); + } + + private void setup() + { + Random rnd = new Random(); + //12345678901234567890123456 + char new_ans; + do + { + new_ans = "abcdefghijklmnopqrstuvwxyz"[rnd.Next(26)]; + } while (next_ans == new_ans); + next_ans = new_ans; + + label1.Text = next_ans.ToString().ToUpper(); + dictate(next_ans); + sw.Reset(); + sw.Start(); + } + public enum MessageBeepType : int + { + SimpleBeep = -1, + MB_OK = 0x00, + MB_ICONHAND = 0x10, + MB_ICONQUESTION = 0x20, + MB_ICONEXCLAMATION = 0x30, + MB_ICONASTERISK = 0x40, + } + + private void write_log(int sec) + { + System.IO.StreamWriter f = new System.IO.StreamWriter("record.txt", true, Encoding.UTF8); + DateTime d = DateTime.Now; + + f.WriteLine(d.ToString() + "\t" + sec.ToString() + "秒"); + f.Close(); + } + + [System.Runtime.InteropServices.DllImport("user32.dll")] + public static extern bool MessageBeep(MessageBeepType uType); + private void Form1_KeyPress1(object sender, KeyPressEventArgs e) + { + if (talker_thread != null) + { + talker_thread.Abort(); + } + + if (game_start) + { + if (e.KeyChar == '\x1b') + { + label1.Text = "!"; + game_start = false; + indicator2.Text = "--"; + talker_thread = new System.Threading.Thread( + new System.Threading.ThreadStart(greeting)); + talker_thread.Start(); + } + + if (e.KeyChar == next_ans) + { //pinpon + sw.Stop(); + correct[next_ans].Add(sw.Elapsed); + MessageBeep(MessageBeepType.MB_ICONASTERISK); + challenge_left--; + indicator2.Text = (default_challenge-challenge_left+1).ToString(); + setup(); + } else + { + mistake[next_ans].Add(sw.Elapsed); + dictate(next_ans); + sw.Reset(); + sw.Start(); + } + if (challenge_left == 0) { + game_start = false; label1.Text = "!"; + + TimeSpan ts = DateTime.Now - start_time; + int sec = ts.Minutes * 60 + ts.Seconds; + label2.Text = sec.ToString() + "秒"; + write_log(sec); + number(sec); + playsound(prefix + "seconds.mp3", true); + Console.WriteLine(sec); + + if (sec > 60) + { + playsound(prefix + "sorry.mp3", true); + } + else + { + playsound(prefix + "congra.mp3", true); + } + + double sum = 0; int n = 0; + for (char c = 'a'; c <= 'z'; c++) + { + foreach (var item in correct[c]) + { + sum += item.TotalSeconds; + n++; + } + foreach (var item in mistake[c]) + { + sum += item.TotalSeconds; + n++; + } + } + label3.Text = "平均:" + (sum / n).ToString("F") + "s"; + + System.Threading.Thread.Sleep(1000); + indicator2.Text = "--"; + talker_thread = new System.Threading.Thread( + new System.Threading.ThreadStart(greeting)); + talker_thread.Start(); + } + } + else + { + if (e.KeyChar == '\x1b') + { + Close(); + } + + if (e.KeyChar == ' ') + { + game_start = true; start_time = DateTime.Now; challenge_left = default_challenge; + Console.WriteLine("OK start"); setup(); indicator2.Text = "1"; + label2.Text = ""; + + } + else if (e.KeyChar == '+') + { + default_challenge++; + indicator1.Text= default_challenge.ToString(); + } + else if (e.KeyChar == '-') + { + default_challenge--; + indicator1.Text = default_challenge.ToString(); + } + } + } + + private void Form1_Load(object sender, EventArgs e) + { + } + System.Threading.Thread talker_thread; + private void Form1_Shown(object sender, EventArgs e) + { + talker_thread = new System.Threading.Thread( + new System.Threading.ThreadStart(greeting)); + talker_thread.Start(); + } + + private void NVType_Resize(object sender, EventArgs e) + { + Control c = (Control)sender; + int w = c.Width < c.Height ? c.Width : c.Height; + label1.Font = new Font("MS UI Gothic", w *5 / 6); + } + } +} diff --git a/WindowsFormsApplication1/Form1.resx b/WindowsFormsApplication1/Form1.resx new file mode 100755 index 0000000..29dcb1b --- /dev/null +++ b/WindowsFormsApplication1/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/WindowsFormsApplication1/Program.cs b/WindowsFormsApplication1/Program.cs new file mode 100755 index 0000000..71f258e --- /dev/null +++ b/WindowsFormsApplication1/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace NVTest +{ + static class Program + { + /// + /// アプリケーションのメイン エントリ ポイントです。 + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new NVType()); + } + } +} diff --git a/WindowsFormsApplication1/Properties/AssemblyInfo.cs b/WindowsFormsApplication1/Properties/AssemblyInfo.cs new file mode 100755 index 0000000..9266249 --- /dev/null +++ b/WindowsFormsApplication1/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// アセンブリに関する一般情報は以下の属性セットをとおして制御されます。 +// アセンブリに関連付けられている情報を変更するには、 +// これらの属性値を変更してください。 +[assembly: AssemblyTitle("WindowsFormsApplication1")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("関西学院大学")] +[assembly: AssemblyProduct("WindowsFormsApplication1")] +[assembly: AssemblyCopyright("Copyright © 関西学院大学 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible を false に設定すると、その型はこのアセンブリ内で COM コンポーネントから +// 参照不可能になります。COM からこのアセンブリ内の型にアクセスする場合は、 +// その型の ComVisible 属性を true に設定してください。 +[assembly: ComVisible(false)] + +// 次の GUID は、このプロジェクトが COM に公開される場合の、typelib の ID です +[assembly: Guid("943f4986-0f52-44be-9897-a78421e8fbc6")] + +// アセンブリのバージョン情報は、以下の 4 つの値で構成されています: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を +// 既定値にすることができます: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/WindowsFormsApplication1/Properties/Resources.Designer.cs b/WindowsFormsApplication1/Properties/Resources.Designer.cs new file mode 100755 index 0000000..abdea7f --- /dev/null +++ b/WindowsFormsApplication1/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// このコードはツールによって生成されました。 +// ランタイム バージョン:4.0.30319.42000 +// +// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 +// コードが再生成されるときに損失したりします。 +// +//------------------------------------------------------------------------------ + +namespace NVTest.Properties { + using System; + + + /// + /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。 + /// + // このクラスは StronglyTypedResourceBuilder クラスが ResGen + // または Visual Studio のようなツールを使用して自動生成されました。 + // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に + // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("NVTest.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 厳密に型指定されたこのリソース クラスを使用して、すべての検索リソースに対し、 + /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// 型 System.Drawing.Bitmap のローカライズされたリソースを検索します。 + /// + internal static System.Drawing.Bitmap alifashion049_512 { + get { + object obj = ResourceManager.GetObject("alifashion049_512", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/WindowsFormsApplication1/Properties/Resources.resx b/WindowsFormsApplication1/Properties/Resources.resx new file mode 100755 index 0000000..cb71e83 --- /dev/null +++ b/WindowsFormsApplication1/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + ..\Resources\alifashion049-512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/WindowsFormsApplication1/Properties/Settings.Designer.cs b/WindowsFormsApplication1/Properties/Settings.Designer.cs new file mode 100755 index 0000000..4387d13 --- /dev/null +++ b/WindowsFormsApplication1/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// このコードはツールによって生成されました。 +// ランタイム バージョン:4.0.30319.42000 +// +// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 +// コードが再生成されるときに損失したりします。 +// +//------------------------------------------------------------------------------ + +namespace NVTest.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/WindowsFormsApplication1/Properties/Settings.settings b/WindowsFormsApplication1/Properties/Settings.settings new file mode 100755 index 0000000..abf36c5 --- /dev/null +++ b/WindowsFormsApplication1/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/WindowsFormsApplication1/Resources/AppIcon.ico b/WindowsFormsApplication1/Resources/AppIcon.ico new file mode 100755 index 0000000..e0e8a72 --- /dev/null +++ b/WindowsFormsApplication1/Resources/AppIcon.ico Binary files differ diff --git a/WindowsFormsApplication1/Resources/Thumbs.db b/WindowsFormsApplication1/Resources/Thumbs.db new file mode 100755 index 0000000..04a3c1a --- /dev/null +++ b/WindowsFormsApplication1/Resources/Thumbs.db Binary files differ diff --git a/WindowsFormsApplication1/Resources/alifashion049-512.png b/WindowsFormsApplication1/Resources/alifashion049-512.png new file mode 100755 index 0000000..9b8d0f3 --- /dev/null +++ b/WindowsFormsApplication1/Resources/alifashion049-512.png Binary files differ diff --git a/WindowsFormsApplication1/WindowsFormsApplication1.csproj b/WindowsFormsApplication1/WindowsFormsApplication1.csproj new file mode 100755 index 0000000..af37c08 --- /dev/null +++ b/WindowsFormsApplication1/WindowsFormsApplication1.csproj @@ -0,0 +1,227 @@ + + + + + Debug + AnyCPU + {7BA30BC2-02DA-4F2F-8B74-17DD5F52B0B6} + WinExe + Properties + NVTest + NVTyping + v4.5 + 512 + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + alifashion049_512_M1a_icon.ico + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WindowsFormsApplication1/alifashion049_512_M1a_icon.ico b/WindowsFormsApplication1/alifashion049_512_M1a_icon.ico new file mode 100755 index 0000000..777e54e --- /dev/null +++ b/WindowsFormsApplication1/alifashion049_512_M1a_icon.ico Binary files differ