2019年3月5日 星期二

Facebook改名,特殊名

導言:
之前申請帳號時被擋掉,因為「羽」不是百家姓。所以都用英文名,抵死不用中文。後來查資料可透過轉至日文用漢字建,但還是無法正常顯示。尤其在Search時,並不會當主要查詢對象。所以改成轉成英文後改名就可以了。總之,別用中文網頁取特殊名,會過不了。真是一個奇怪的規定。

Step 1:
選單→設定Settings→改成英文English(US)




Step 2:
選單→設定Settings→一般General→名字Name→編輯Edit



總結:
不知何時會把這惱人的限定百家姓取消,但目前就先將就將就用了。

2019年2月5日 星期二

凱基API QuoteCom和TradeCom共存

導言:
因Package版本不一致,造成「參考」時的大混亂。
QuoteCom的Package版本是1.0.6.3
TradeCom的Package版本是1.0.6.8
只要引用最新版的Package(1.0.6.8)問題就解決了

問題:
在Log檔中發現
[P:PushClient FeedPkgThread OnRcvData Exception1503]
造成TradeCom的事件無法正常運作,特別是資料接收( OnRcvMessage)
而接收主機時間(OnRcvServerTime)的Event又正常運作。
所以這問題變的不知所云,因為錯誤清單完全沒有出現錯誤。


Step 1:問題點Package版本不同



Step 2:取最新的Package(1.0.6.8)來加入參考,捨棄Package(1.0.6.3)版
把KGI的四個dll加入參考
Package.dll
PushClient.dll
QuoteCom.dll
TradeCom.dll


Step 3:額外的dll放在同目錄
有兩個dll不能引用進參考,只能放在同目錄。
ICSharpCode.SharpZipLib.dll
Interop.KGICGCAPIATLLib.dll


總結:
這個Package.dll版本錯亂,花了很多時間才解決。一度懷疑報價與交易不能共存在同一類別(class)中。

記得先把所有資料匣(專案目錄、debug目錄、release目錄)中的dll檔全清光,有時visual studio建置時,不會重抓dll。


參考資料:無

Visual Studio 必須經過強式簽署才能標記成必要條件

導言:
我也不知道這什麼?
偵錯時出現這段話:「必須經過強式簽署才能標記成必要條件」


Step 1:解決方法
[專案]→[屬性]→[安全性]→取消[啟用ClickOnce安全性設定]






總結:
解決就好。


參考資料:無

2019年2月3日 星期日

C# 事件(event)發行(publish)訂閱(subscribe)

導言:
記錄Evnet的簡單範例

Step 1:程式碼

//接收方
class 範例_事件
{
    來源者 t = new 來源者();
    public 範例_事件()
    {
        t.發行事件 += 訂閱事件;
    }
    public void 訂閱事件(object sender, string e)
    {
        //處理訂閱資料
    }
}
//發行方
public class 來源者
{
    public event EventHandler<string> 發行事件;
    public void 做事()
    {
        觸發事件("ABC");
    }
    protected virtual void 觸發事件(string e)
    {
        EventHandler<string> 處理 = 發行事件;
        if (處理 != null)
        {
            處理(this, e);
        }
    }
}





總結:
大家作的範例都好複雜,我把呼叫事件作出最簡單化。
微軟文件依然保持著,不知所云的特性。
連標題都不知在說什麼(HOW TO:發行符合 .NET Framework 方針的事件),
讓你找不到範例。 

概念很簡單,在來源的class中製作一個事件(event)。
然後在目前的class使用「+=」來訂閱事件。
當來源class觸發時,目前的class能接到這事件然後處理。
如果不使用event的話,就必須定期監看來源class是否有變動(被動式)。
一來慢一步,二來耗損資源。事件就是主動發送訊息給下游。

參考資料:

2019年1月30日 星期三

Visual Studio 關閉視窗時,無法自動停止偵錯狀態。

導言:
寫程式不知為何,按關閉視窗無法終結除模式回到程式碼編輯狀態。

Step 1:狀況
關閉視窗,跳不回程式編輯狀態


Step 2:暴力解決法
在表單屬性→[事件]→[FormCloseed]→加入[ Environment.Exit(Environment.ExitCode);]



總結:
通常是程式碼可能有loop狀態,例如物件交叉使用,A class 中宣告 B class 使用,B class 中也宣告 A class使用,造成互咬住不放無法釋放。


參考資料:《RiCo技術農場

2019年1月5日 星期六

移除Word工具列Dr. eye 譯典通

導言:
在安裝Dr.eye 譯典通後,Word檔就會有惱人的譯典通工具列。不管怎麼關都無效。每次開檔就會出現。

Step 1:登錄編輯器
執行[regedit]

Step 2:刪除資料(記得先備分參數)
目錄HKEY_CLASSES_ROOT
搜尋[DreyeWdAddin.WordAddin.1]
刪除[DreyeWdAddin.WordAddin.1]


總結:
完美主義者對這一行是多麼恨之入骨,怎麼Dr.eye開發者神經這麼粗呢。
舒坦多了。


參考資料:《強迫移除在Word工具列上面的Dr.eye全文翻譯

2018年12月27日 星期四

找不到 SignTool.exe

導言:
在Visual Studio使用發行時,可能出現的錯誤訊息。然後連Debug、Relase模式都無法使用。這問題出在「簽署ClickOnce」出錯誤。把憑證先關掉。



Step 1:問題
錯誤訊息:「簽署時發生錯誤: 在路徑 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\signtool.exe 找不到 SignTool.exe」

Step 2:解決方法
Visual Studio→專案→方案屬性→簽署→「答署ClickOnece資訊清單」的勾勾取消。




總結:
所以錯誤訊息像似風馬牛不相干。