Created
December 30, 2015 08:09
-
-
Save syctseng/1625e0aa0bb5d851d870 to your computer and use it in GitHub Desktop.
帳戶監視器_KGI
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
namespace Watcher | |
{ | |
public class Account | |
{ | |
private string broker = ""; | |
private string accountNO = ""; | |
private string id = ""; | |
private string password = ""; | |
public string Broker = ""; | |
public string NO = ""; | |
public string ID = ""; | |
public string Password = ""; | |
public string getInfomation(string AccountIni = @"account.ini") | |
{ | |
string[] iniContent; | |
if (!File.Exists(AccountIni)) | |
{ | |
return "-1"; | |
} | |
else | |
{ | |
string acountInfo = ""; | |
acountInfo = System.IO.File.ReadAllText(AccountIni); | |
if (string.IsNullOrEmpty(acountInfo)) | |
{ | |
return "0"; | |
} | |
else | |
{ | |
acountInfo = acountInfo.Trim(); | |
iniContent = acountInfo.Split(','); | |
broker = iniContent[0]; | |
accountNO = iniContent[1]; | |
id = iniContent[2]; | |
password = iniContent[3]; | |
Broker = broker; | |
NO = accountNO; | |
ID = id; | |
Password = password; | |
return "1"; | |
} | |
} | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8" ?> | |
<configuration> | |
<startup> | |
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> | |
</startup> | |
</configuration> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Intelligence; | |
using Package; | |
using Smart; | |
using System; | |
using System.Collections.Generic; | |
using System.ComponentModel; | |
using System.Data; | |
using System.Drawing; | |
using System.IO; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
using System.Timers; | |
using System.Windows.Forms; | |
namespace Watcher | |
{ | |
internal delegate void SetAddInfoCallBack(string text); | |
public partial class Form1 : Form | |
{ | |
private TaiFexCom tfcom; | |
private UTF8Encoding encoding = new System.Text.UTF8Encoding(); | |
private string Equity; | |
private static System.Timers.Timer aTimer; | |
public Account account = new Account(); | |
public string AccountIni = @"account.ini"; | |
public Form1() | |
{ | |
InitializeComponent(); | |
tfcom = new TaiFexCom("itrade.kgi.com.tw", 443, "API", false); | |
tfcom.ConnectTimeout = 5000; | |
tfcom.OnRcvMessage += OnRcvMessage; //資料接收事件 | |
tfcom.OnGetStatus += OnGetStatus; //狀態通知事件 | |
tfcom.OnRcvServerTime += OnRcvServerTime; //接收主機時間 | |
account.getInfomation(AccountIni); | |
} | |
#region TaiFexCom API 事件 | |
private void OnGetStatus(object sender, COM_STATUS staus, byte[] msg) | |
{ | |
TaiFexCom com = (TaiFexCom)sender; | |
if (this.InvokeRequired) | |
{ | |
Smart.OnGetStatus_EventHandler d = new Smart.OnGetStatus_EventHandler(OnGetStatus); | |
this.Invoke(d, new object[] { sender, staus, msg }); | |
return; | |
} | |
OnGetStatusUpdateUI(sender, staus, msg); | |
} | |
private void OnRcvServerTime(Object sender, DateTime serverTime, int ConnQuality) | |
{ | |
if (this.InvokeRequired) | |
{ | |
Smart.OnRcvServerTime_EventHandler d = new Smart.OnRcvServerTime_EventHandler(OnRcvServerTime); | |
this.Invoke(d, new object[] { sender, serverTime, ConnQuality }); | |
return; | |
} | |
} | |
private void OnRcvMessage(object sender, PackageBase package) | |
{ | |
if (this.InvokeRequired) | |
{ | |
OnRcvMessage_EventHandler d = new OnRcvMessage_EventHandler(OnRcvMessage); | |
this.Invoke(d, new object[] { sender, package }); | |
return; | |
} | |
switch ((DT)package.DT) | |
{ | |
case DT.LOGIN: | |
P001503 p1503 = (P001503)package; | |
if (p1503.Code != 0) | |
AddInfo("登入失敗 CODE = " + p1503.Code + " " + tfcom.GetMessageMap(p1503.Code)); | |
else | |
{ | |
AddInfo("登入成功 "); | |
} | |
break; | |
#region 帳務查詢 | |
case DT.FINANCIAL_COVER_TRADER: //1614 | |
P001614 p1614 = (P001614)package; | |
AddInfo("RCV 1614 [" + p1614.Rows + "]"); | |
break; | |
case DT.INVENTORY_TRADER: //1616 | |
P001616 p1616 = (P001616)package; | |
AddInfo("RCV 1616 [" + p1616.Rows + "]"); | |
break; | |
case DT.INVENTORY_DETAIL_TRADER: //1618 | |
P001618 p1618 = (P001618)package; | |
AddInfo("RCV 1618 [" + p1618.Rows + "]"); | |
break; | |
case DT.FINANCIAL_COVER_TRADER_Detail: //1624 | |
P001624 p1624 = (P001624)package; | |
AddInfo("RCV 1624 [" + p1624.Rows + "]"); | |
break; | |
case DT.FINANCIAL_TRADERN: //1626 | |
P001626 p1626 = (P001626)package; | |
if (p1626.Count > 0) | |
{ | |
foreach (P001626_2 p1626b in p1626.p001626_2) | |
{ | |
Equity = p1626b.ActMarketValue; | |
} | |
AddInfo("權益回報:NT$ " + Equity); | |
string outputPath = @textBox_輸出路徑.Text + "xxxx" + account.NO.Remove(0, 4) + ".txt"; | |
System.IO.File.WriteAllText(outputPath, Equity); | |
} | |
//AddInfo("RCV 1626 [" + p1626.Count + "]" ); | |
break; | |
case DT.FINANCIAL_CURRENCY: //1628 | |
P001628 p1628 = (P001628)package; | |
AddInfo("RCV 1628 CODE= " + p1628.Code + " MSG=" + p1628.ErrorMsg); | |
break; | |
#endregion 帳務查詢 | |
} | |
} | |
private void OnGetStatusUpdateUI(object sender, COM_STATUS staus, byte[] msg) | |
{ | |
TaiFexCom com = (TaiFexCom)sender; | |
string smsg = null; | |
switch (staus) | |
{ | |
case COM_STATUS.LOGIN_READY: //登入成功 | |
// DoShowLogin(); | |
AddInfo("凱基下單登入成功:" + Environment.NewLine + com.Accounts); | |
break; | |
case COM_STATUS.LOGIN_FAIL: //登入失敗 | |
AddInfo(String.Format("凱基下單登入失敗:[{0}]", encoding.GetString(msg))); | |
break; | |
case COM_STATUS.LOGIN_UNKNOW: //登入狀態不明 | |
AddInfo(String.Format("凱基下單登入狀態不明:[{0}]", encoding.GetString(msg))); | |
break; | |
case COM_STATUS.CONNECT_READY: //連線成功 | |
smsg = "凱基下單伺服器" + tfcom.ServerHost + ":" + tfcom.ServerPort + Environment.NewLine + | |
"伺服器回應: [" + encoding.GetString(msg) + "]" + Environment.NewLine; | |
AddInfo(smsg); | |
break; | |
case COM_STATUS.CONNECT_FAIL: //連線失敗 | |
smsg = encoding.GetString(msg); | |
AddInfo("凱基下單連線失敗:" + smsg + " " + tfcom.ServerHost + ":" + tfcom.ServerPort); | |
break; | |
case COM_STATUS.DISCONNECTED: //斷線 | |
// DoShowLogout(); | |
smsg = encoding.GetString(msg); | |
AddInfo("凱基下單斷線:" + smsg); | |
break; | |
case COM_STATUS.SUBSCRIBE: | |
smsg = encoding.GetString(msg); | |
break; | |
case COM_STATUS.UNSUBSCRIBE: | |
smsg = encoding.GetString(msg); | |
break; | |
case COM_STATUS.ACK_REQUESTID: //下單或改單第一次回覆 | |
long RequestId = BitConverter.ToInt64(msg, 0); | |
byte status = msg[8]; | |
break; | |
} | |
} | |
#endregion TaiFexCom API 事件 | |
private void AddInfo(string msg) | |
{ | |
if (this.msgBox.InvokeRequired) | |
{ | |
SetAddInfoCallBack d = new SetAddInfoCallBack(AddInfo); | |
this.Invoke(d, new object[] { msg }); | |
} | |
else | |
{ | |
string fMsg = String.Format("[{0}] {1} {2}", DateTime.Now.ToString("HH:mm:ss:ffff"), msg, Environment.NewLine); | |
try | |
{ | |
if (msgBox.TextLength > 50000) msgBox.ResetText(); | |
msgBox.AppendText(fMsg); | |
} | |
catch { }; | |
} | |
} | |
private void GetEquity() | |
{ | |
long rtn = tfcom.RetriveFMargin("I", account.Broker, account.NO, "", ""); | |
if (rtn == -1) | |
MessageBox.Show("無查詢權限:請確認 分公司代號 與 帳戶號碼"); | |
else | |
this.Text = "帳戶監視器:監視中"; | |
} | |
private void SetTimer() | |
{ | |
aTimer = new System.Timers.Timer(10000); | |
aTimer.Elapsed += OnTimedEvent; | |
aTimer.AutoReset = true; | |
aTimer.Enabled = true; | |
} | |
private void OnTimedEvent(object sender, ElapsedEventArgs e) | |
{ | |
if (this.Text == "帳戶監視器:監視中") | |
GetEquity(); | |
else | |
aTimer.Stop(); | |
} | |
private void button_監視_Click(object sender, EventArgs e) | |
{ | |
if (button_監視.Text == "監視中") | |
{ | |
button_監視.Text = "開始監視"; | |
this.Text = "帳戶監視器:已登入"; | |
} | |
else if (this.Text == "帳戶監視器:已登入") | |
{ | |
button_監視.Text = "監視中"; | |
GetEquity(); | |
SetTimer(); | |
} | |
} | |
private void button_登入登出_Click(object sender, EventArgs e) | |
{ | |
//WatcherInitialized(); | |
if (button_登入登出.Text == "登出") | |
{ | |
tfcom.Logout(); | |
button_登入登出.Text = "登入"; | |
this.Text = "帳戶監視器:未登入"; | |
} | |
else | |
{ | |
tfcom.LoginDirect(tfcom.ServerHost, tfcom.ServerPort, account.ID, account.Password, ' '); | |
button_登入登出.Text = "登出"; | |
this.Text = "帳戶監視器:已登入"; | |
} | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace Watcher | |
{ | |
partial class Form1 | |
{ | |
/// <summary> | |
/// 設計工具所需的變數。 | |
/// </summary> | |
private System.ComponentModel.IContainer components = null; | |
/// <summary> | |
/// 清除任何使用中的資源。 | |
/// </summary> | |
/// <param name="disposing">如果應該處置 Managed 資源則為 true,否則為 false。</param> | |
protected override void Dispose(bool disposing) | |
{ | |
if (disposing && (components != null)) | |
{ | |
components.Dispose(); | |
} | |
base.Dispose(disposing); | |
} | |
#region Windows Form 設計工具產生的程式碼 | |
/// <summary> | |
/// 此為設計工具支援所需的方法 - 請勿使用程式碼編輯器修改 | |
/// 這個方法的內容。 | |
/// </summary> | |
private void InitializeComponent() | |
{ | |
this.button_登入登出 = new System.Windows.Forms.Button(); | |
this.button_監視 = new System.Windows.Forms.Button(); | |
this.textBox_輸出路徑 = new System.Windows.Forms.TextBox(); | |
this.msgBox = new System.Windows.Forms.TextBox(); | |
this.label_輸出路徑 = new System.Windows.Forms.Label(); | |
this.label_帳戶資料 = new System.Windows.Forms.Label(); | |
this.textBox_帳戶資料檔 = new System.Windows.Forms.TextBox(); | |
this.SuspendLayout(); | |
// | |
// button_登入登出 | |
// | |
this.button_登入登出.Font = new System.Drawing.Font("微軟正黑體", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(136))); | |
this.button_登入登出.Location = new System.Drawing.Point(305, 12); | |
this.button_登入登出.Name = "button_登入登出"; | |
this.button_登入登出.Size = new System.Drawing.Size(85, 29); | |
this.button_登入登出.TabIndex = 0; | |
this.button_登入登出.Text = "登入"; | |
this.button_登入登出.UseVisualStyleBackColor = true; | |
this.button_登入登出.Click += new System.EventHandler(this.button_登入登出_Click); | |
// | |
// button_監視 | |
// | |
this.button_監視.Font = new System.Drawing.Font("微軟正黑體", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(136))); | |
this.button_監視.Location = new System.Drawing.Point(305, 47); | |
this.button_監視.Name = "button_監視"; | |
this.button_監視.Size = new System.Drawing.Size(85, 32); | |
this.button_監視.TabIndex = 1; | |
this.button_監視.Text = "開始監視"; | |
this.button_監視.UseVisualStyleBackColor = true; | |
this.button_監視.Click += new System.EventHandler(this.button_監視_Click); | |
// | |
// textBox_輸出路徑 | |
// | |
this.textBox_輸出路徑.Font = new System.Drawing.Font("微軟正黑體", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(136))); | |
this.textBox_輸出路徑.Location = new System.Drawing.Point(77, 13); | |
this.textBox_輸出路徑.Name = "textBox_輸出路徑"; | |
this.textBox_輸出路徑.Size = new System.Drawing.Size(222, 29); | |
this.textBox_輸出路徑.TabIndex = 2; | |
this.textBox_輸出路徑.Text = "F:\\TEMP\\"; | |
// | |
// msgBox | |
// | |
this.msgBox.Font = new System.Drawing.Font("新細明體", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(136))); | |
this.msgBox.Location = new System.Drawing.Point(12, 92); | |
this.msgBox.Multiline = true; | |
this.msgBox.Name = "msgBox"; | |
this.msgBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; | |
this.msgBox.Size = new System.Drawing.Size(378, 158); | |
this.msgBox.TabIndex = 3; | |
// | |
// label_輸出路徑 | |
// | |
this.label_輸出路徑.AutoSize = true; | |
this.label_輸出路徑.Font = new System.Drawing.Font("新細明體", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(136))); | |
this.label_輸出路徑.Location = new System.Drawing.Point(4, 20); | |
this.label_輸出路徑.Name = "label_輸出路徑"; | |
this.label_輸出路徑.Size = new System.Drawing.Size(67, 15); | |
this.label_輸出路徑.TabIndex = 4; | |
this.label_輸出路徑.Text = "輸出路徑"; | |
// | |
// label_帳戶資料 | |
// | |
this.label_帳戶資料.AutoSize = true; | |
this.label_帳戶資料.Font = new System.Drawing.Font("新細明體", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(136))); | |
this.label_帳戶資料.Location = new System.Drawing.Point(4, 55); | |
this.label_帳戶資料.Name = "label_帳戶資料"; | |
this.label_帳戶資料.Size = new System.Drawing.Size(67, 15); | |
this.label_帳戶資料.TabIndex = 6; | |
this.label_帳戶資料.Text = "帳戶資料"; | |
// | |
// textBox_帳戶資料檔 | |
// | |
this.textBox_帳戶資料檔.Font = new System.Drawing.Font("微軟正黑體", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(136))); | |
this.textBox_帳戶資料檔.Location = new System.Drawing.Point(77, 48); | |
this.textBox_帳戶資料檔.Name = "textBox_帳戶資料檔"; | |
this.textBox_帳戶資料檔.Size = new System.Drawing.Size(222, 29); | |
this.textBox_帳戶資料檔.TabIndex = 5; | |
this.textBox_帳戶資料檔.Text = "account.ini"; | |
// | |
// Form1 | |
// | |
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); | |
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | |
this.ClientSize = new System.Drawing.Size(401, 262); | |
this.Controls.Add(this.label_帳戶資料); | |
this.Controls.Add(this.textBox_帳戶資料檔); | |
this.Controls.Add(this.label_輸出路徑); | |
this.Controls.Add(this.msgBox); | |
this.Controls.Add(this.textBox_輸出路徑); | |
this.Controls.Add(this.button_監視); | |
this.Controls.Add(this.button_登入登出); | |
this.Name = "Form1"; | |
this.Text = "帳戶監視器"; | |
this.ResumeLayout(false); | |
this.PerformLayout(); | |
} | |
#endregion | |
private System.Windows.Forms.Button button_登入登出; | |
private System.Windows.Forms.Button button_監視; | |
private System.Windows.Forms.TextBox textBox_輸出路徑; | |
private System.Windows.Forms.TextBox msgBox; | |
private System.Windows.Forms.Label label_輸出路徑; | |
private System.Windows.Forms.Label label_帳戶資料; | |
private System.Windows.Forms.TextBox textBox_帳戶資料檔; | |
} | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |
</resheader> | |
<resheader name="writer"> | |
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |
</resheader> | |
</root> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Threading.Tasks; | |
using System.Windows.Forms; | |
namespace Watcher | |
{ | |
public class Program | |
{ | |
/// <summary> | |
/// 應用程式的主要進入點。 | |
/// </summary> | |
[STAThread] | |
private static void Main() | |
{ | |
Application.EnableVisualStyles(); | |
Application.SetCompatibleTextRenderingDefault(false); | |
Application.Run(new Form1()); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> | |
<PropertyGroup> | |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |
<ProjectGuid>{D3D9E694-7D10-4C25-B4BF-540B1F0A8837}</ProjectGuid> | |
<OutputType>WinExe</OutputType> | |
<AppDesignerFolder>Properties</AppDesignerFolder> | |
<RootNamespace>Watcher</RootNamespace> | |
<AssemblyName>Watcher</AssemblyName> | |
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion> | |
<FileAlignment>512</FileAlignment> | |
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> | |
</PropertyGroup> | |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | |
<PlatformTarget>AnyCPU</PlatformTarget> | |
<DebugSymbols>true</DebugSymbols> | |
<DebugType>full</DebugType> | |
<Optimize>false</Optimize> | |
<OutputPath>bin\Debug\</OutputPath> | |
<DefineConstants>DEBUG;TRACE</DefineConstants> | |
<ErrorReport>prompt</ErrorReport> | |
<WarningLevel>4</WarningLevel> | |
</PropertyGroup> | |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | |
<PlatformTarget>AnyCPU</PlatformTarget> | |
<DebugType>pdbonly</DebugType> | |
<Optimize>true</Optimize> | |
<OutputPath>bin\Release\</OutputPath> | |
<DefineConstants>TRACE</DefineConstants> | |
<ErrorReport>prompt</ErrorReport> | |
<WarningLevel>4</WarningLevel> | |
</PropertyGroup> | |
<ItemGroup> | |
<Reference Include="Package"> | |
<HintPath>C:\Users\YCTseng\Desktop\TradeCom-API-20150729\bin\Release\Package.dll</HintPath> | |
</Reference> | |
<Reference Include="System" /> | |
<Reference Include="System.Core" /> | |
<Reference Include="System.Xml.Linq" /> | |
<Reference Include="System.Data.DataSetExtensions" /> | |
<Reference Include="Microsoft.CSharp" /> | |
<Reference Include="System.Data" /> | |
<Reference Include="System.Deployment" /> | |
<Reference Include="System.Drawing" /> | |
<Reference Include="System.Net.Http" /> | |
<Reference Include="System.Windows.Forms" /> | |
<Reference Include="System.Xml" /> | |
<Reference Include="TradeCom"> | |
<HintPath>C:\Users\YCTseng\Desktop\TradeCom-API-20150729\bin\Debug\TradeCom.dll</HintPath> | |
</Reference> | |
</ItemGroup> | |
<ItemGroup> | |
<Compile Include="Account.cs" /> | |
<Compile Include="Form1.cs"> | |
<SubType>Form</SubType> | |
</Compile> | |
<Compile Include="Form1.Designer.cs"> | |
<DependentUpon>Form1.cs</DependentUpon> | |
</Compile> | |
<Compile Include="Program.cs" /> | |
<Compile Include="Properties\AssemblyInfo.cs" /> | |
<EmbeddedResource Include="Form1.resx"> | |
<DependentUpon>Form1.cs</DependentUpon> | |
</EmbeddedResource> | |
<EmbeddedResource Include="Properties\Resources.resx"> | |
<Generator>ResXFileCodeGenerator</Generator> | |
<LastGenOutput>Resources.Designer.cs</LastGenOutput> | |
<SubType>Designer</SubType> | |
</EmbeddedResource> | |
<Compile Include="Properties\Resources.Designer.cs"> | |
<AutoGen>True</AutoGen> | |
<DependentUpon>Resources.resx</DependentUpon> | |
</Compile> | |
<None Include="ClassDiagram1.cd" /> | |
<None Include="Properties\Settings.settings"> | |
<Generator>SettingsSingleFileGenerator</Generator> | |
<LastGenOutput>Settings.Designer.cs</LastGenOutput> | |
</None> | |
<Compile Include="Properties\Settings.Designer.cs"> | |
<AutoGen>True</AutoGen> | |
<DependentUpon>Settings.settings</DependentUpon> | |
<DesignTimeSharedInput>True</DesignTimeSharedInput> | |
</Compile> | |
</ItemGroup> | |
<ItemGroup> | |
<None Include="App.config" /> | |
</ItemGroup> | |
<ItemGroup> | |
<WCFMetadata Include="Service References\" /> | |
</ItemGroup> | |
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Microsoft Visual Studio Solution File, Format Version 12.00 | |
# Visual Studio 14 | |
VisualStudioVersion = 14.0.23107.0 | |
MinimumVisualStudioVersion = 10.0.40219.1 | |
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Watcher", "Watcher\Watcher.csproj", "{D3D9E694-7D10-4C25-B4BF-540B1F0A8837}" | |
EndProject | |
Global | |
GlobalSection(SolutionConfigurationPlatforms) = preSolution | |
Debug|Any CPU = Debug|Any CPU | |
Release|Any CPU = Release|Any CPU | |
EndGlobalSection | |
GlobalSection(ProjectConfigurationPlatforms) = postSolution | |
{D3D9E694-7D10-4C25-B4BF-540B1F0A8837}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |
{D3D9E694-7D10-4C25-B4BF-540B1F0A8837}.Debug|Any CPU.Build.0 = Debug|Any CPU | |
{D3D9E694-7D10-4C25-B4BF-540B1F0A8837}.Release|Any CPU.ActiveCfg = Release|Any CPU | |
{D3D9E694-7D10-4C25-B4BF-540B1F0A8837}.Release|Any CPU.Build.0 = Release|Any CPU | |
EndGlobalSection | |
GlobalSection(SolutionProperties) = preSolution | |
HideSolutionNode = FALSE | |
EndGlobalSection | |
EndGlobal |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment