Explorar o código

新接口变更处理,同时添加部分小米FireTV处理。

Jeff %!s(int64=3) %!d(string=hai) anos
pai
achega
ca10aba4a2

+ 124 - 656
FactoryTool_CShare/Business/CommonMethod.cs

@@ -478,612 +478,188 @@ namespace MOKA_Factory_Tools
         }
         }
 
 
         /// <summary>
         /// <summary>
-        /// 解析其他keys
+        /// 在线获取Key:最新接口;
         /// </summary>
         /// </summary>
         /// <param name="url"></param>
         /// <param name="url"></param>
-        /// <param name="keymessage"></param>
-        /// <param name="keytype"></param>
-        /// <param name="sqliteConn"></param>
+        /// <param name="sn"></param>
+        /// <param name="order"></param>
+        /// <param name="psn"></param>
+        /// <param name="firetv_device_code"></param>
+        /// <param name="connection"></param>
         /// <param name="key"></param>
         /// <param name="key"></param>
         /// <param name="error"></param>
         /// <param name="error"></param>
+        /// <param name="md5"></param>
         /// <returns></returns>
         /// <returns></returns>
-        public static bool GetKeys(string url, string keymessage, string sn, string keytype, SQLiteConnection sqliteConn, out string key, out string error, string order, out string md5)
+        public static bool GetIDMKeys(string url, string sn, string order, string psn, string firetv_device_code, SQLiteConnection connection, out KeyInfo keys, out string msg)
         {
         {
+            msg = "";
+            keys = new KeyInfo();
             string code;
             string code;
-            string desc;
-            error = "";
-            key = "";
-            md5 = "";
+            bool result = false;
+
             HttpHelper http = new HttpHelper();
             HttpHelper http = new HttpHelper();
             HttpItem item = new HttpItem()
             HttpItem item = new HttpItem()
             {
             {
-                Encoding = Encoding.Default,
+                Encoding = Encoding.UTF8,
                 Method = "post",
                 Method = "post",
-                ContentType = "application/x-www-form-urlencoded",
+                ContentType = "application/json",
                 KeepAlive = false
                 KeepAlive = false
             };
             };
 
 
             // 计算函数耗时;
             // 计算函数耗时;
             Stopwatch watch = new Stopwatch();
             Stopwatch watch = new Stopwatch();
             watch.Start();
             watch.Start();
-            switch (keymessage)
+
+            item.URL = url;
+            item.Postdata = string.Format("{{\"orderNum\":\"{0}\",\"sn\":\"{1}\",\"psn\":\"{2}\",\"orderCode\":\"{3}\"}}", order, sn, psn, firetv_device_code);
+            HttpResult httpResult = http.GetHtml(item);
+            if (httpResult.StatusCode == System.Net.HttpStatusCode.OK)
             {
             {
-                case "DeviceID":
+                JObject jObject = JObject.Parse(httpResult.Html);
+                msg = JSON_SeleteNode(jObject, "msg");
+                code = JSON_SeleteNode(jObject, "code");
+                if ( code == "0" )
+                {
+                    Dictionary<string, string> data = JsonConvert.DeserializeObject<Dictionary<string, string>>(jObject["data"].ToString());
+                    if (data != null)
                     {
                     {
-                        item.URL = url + "/getid.do?";
-                        item.Postdata = "devicetype=tcl_unknown_model" + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
+                        if (data.ContainsKey("mac") && data.ContainsKey("mac_md5"))
                         {
                         {
-                            Log.WriteGetKeyLog("\r\nGetDeviceID:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetDIDKeyXml(result.Html, "response", "id", out code, out desc, out key))
-                            {
-                                //
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse DID", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
+                            keys.Mac.data = data["mac"];
+                            keys.Mac.md5 = data["mac_md5"];
                         }
                         }
-                        else
+
+                        if (data.ContainsKey("btMac") && data.ContainsKey("btMac_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get DID", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.BT_MAC.data = data["btMac"];
+                            keys.BT_MAC.md5 = data["btMac_md5"];
                         }
                         }
-                        break;
-                    }
-                case "MAC":
-                    {
-                        item.URL = url + "/getmac.do?";
-                        item.Postdata = "typeString=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGetMac:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "mac", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse Mac", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("wifiMac") && data.ContainsKey("wifiMac_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get Mac", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["wifiMac"];
+                            keys.WiFi_MAC.md5 = data["wifiMac_md5"];
                         }
                         }
-                        break;
-                    }
-                case "HDCP_KEY":
-                    {
-                        item.URL = url + "/gethdcpkey.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGetHDCP_KEY:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "key", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse hdcp", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("deviceid") && data.ContainsKey("deviceid_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get hdcp", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["deviceid"];
+                            keys.WiFi_MAC.md5 = data["deviceid_md5"];
                         }
                         }
-                        break;
-                    }
-                case "CI_PLUS_KEY":
-                    {
-                        item.URL = url + "/getcikey.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGetCI_PLUS_KEY:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "key", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse ciplus", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("hdcp") && data.ContainsKey("hdcp_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get ciplus", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["hdcp"];
+                            keys.WiFi_MAC.md5 = data["hdcp_md5"];
                         }
                         }
-                        break;
-                    }
-                case "WiDi":
-                    {
-                        item.URL = url + "/getwidi.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGetWiDi:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "key", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse widi", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("hdcp2") && data.ContainsKey("hdcp2_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get widi", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["hdcp2"];
+                            keys.WiFi_MAC.md5 = data["hdcp2_md5"];
                         }
                         }
-                        break;
-                    }
-                case "HDCP2.2_KEY":
-                    {
-                        item.URL = url + "/gethdcpkey2.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGetHDCP2.2_KEY:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "key", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse hdcp22", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("ci") && data.ContainsKey("ci_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get hdcp22", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["ci"];
+                            keys.WiFi_MAC.md5 = data["ci_md5"];
                         }
                         }
-                        break;
-                    }
-                case "NETFILX_ESN":
-                    {
-                        item.URL = url + "/getnetfilxesn.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGetNETFILX_ESN:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "esn", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse esn", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("ecp") && data.ContainsKey("ecp_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get esn", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["ecp"];
+                            keys.WiFi_MAC.md5 = data["ecp_md5"];
                         }
                         }
-                        break;
-                    }
-                case "MGK_KEY":
-                    {
-                        item.URL = url + "/getmgk.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGetMGK:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "key", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse MGK", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("acas") && data.ContainsKey("acas_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get MGK", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["acas"];
+                            keys.WiFi_MAC.md5 = data["acas_md5"];
                         }
                         }
-                        break;
-                    }
-                case "Fairplay_KEY":
-                    {
-                        item.URL = url + "/getfairplay.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGetFairplay:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "fairplay", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse Fairplay", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("lek") && data.ContainsKey("lek_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get Fairplay", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["lek"];
+                            keys.WiFi_MAC.md5 = data["lek_md5"];
                         }
                         }
-                        break;
-                    }
-                case "ECP_KEY":
-                    {
-                        item.URL = url + "/getecp.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGetecp:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "ecp", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse ecp", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("pek") && data.ContainsKey("pek_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get ecp", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["pek"];
+                            keys.WiFi_MAC.md5 = data["pek_md5"];
                         }
                         }
-                        break;
-                    }
-                case "LEK":
-                    {
-                        item.URL = url + "/getlek.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGetlek:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "lek", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse lek", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("playready") && data.ContainsKey("playready_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get lek", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["playready"];
+                            keys.WiFi_MAC.md5 = data["playready_md5"];
                         }
                         }
-                        break;
-                    }
-                case "PEK":
-                    {
-                        item.URL = url + "/getpek.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGetpek:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "pek", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse pek", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("netfilx") && data.ContainsKey("netfilx_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get pek", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["netfilx"];
+                            keys.WiFi_MAC.md5 = data["netfilx_md5"];
                         }
                         }
-                        break;
-                    }
-                case "PlayReady_key":
-                    {
-                        item.URL = url + "/getplayready.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGetplayready:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "playReady", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse playready", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("hash") && data.ContainsKey("hash_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get playready", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["hash"];
+                            keys.WiFi_MAC.md5 = data["hash_md5"];
                         }
                         }
-                        break;
-                    }
-                case "Hashkey":
-                    {
-                        item.URL = url + "/gethash.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGethash:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "hash", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse hash", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("mgk") && data.ContainsKey("mgk_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get hash", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["mgk"];
+                            keys.WiFi_MAC.md5 = data["mgk_md5"];
                         }
                         }
-                        break;
-                    }
-                case "YouTube_KEY":
-                    {
-                        item.URL = url + "/getYoutubeKey.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
-                        {
-                            Log.WriteGetKeyLog("\r\nGet youtube key:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "youtubeKey", out code, out desc, out key, out md5))
-                            {
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse youtube key", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
-                        }
-                        else
+                        if (data.ContainsKey("youtube") && data.ContainsKey("youtube_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get youtube key", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["youtube"];
+                            keys.WiFi_MAC.md5 = data["youtube_md5"];
                         }
                         }
-                        break;
-                    }
-                case "DAK":
-                    {
-                        item.URL = url + "/getdak.do?";
-                        item.Postdata = "type=" + keytype + "&sn=" + sn;
-                        if (sn.Trim().Length > 0)
-                            item.Postdata += "&order=" + order;
-                        HttpResult result = http.GetHtml(item);
-                        if (result.StatusCode == System.Net.HttpStatusCode.OK)
+
+                        if (data.ContainsKey("fairplay") && data.ContainsKey("fairplay_md5"))
                         {
                         {
-                            Log.WriteGetKeyLog("\r\nGetDAK:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                            if (Xmlconfig.GetOthersKeyXml(result.Html, "response", "dak", out code, out desc, out key, out md5))
-                            {
+                            keys.WiFi_MAC.data = data["fairplay"];
+                            keys.WiFi_MAC.md5 = data["fairplay_md5"];
+                        }
 
 
-                            }
-                            else
-                            {
-                                error = desc;
-                                ReportErrormsg("Fail to parse dak", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                                return false;
-                            }
+                        if (data.ContainsKey("widevine") && data.ContainsKey("widevine_md5"))
+                        {
+                            keys.WiFi_MAC.data = data["widevine"];
+                            keys.WiFi_MAC.md5 = data["widevine_md5"];
                         }
                         }
-                        else
+
+                        if (data.ContainsKey("attention") && data.ContainsKey("attention_md5"))
                         {
                         {
-                            error = result.StatusDescription;
-                            ReportErrormsg("Fail to get dak", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                            return false;
+                            keys.WiFi_MAC.data = data["attention"];
+                            keys.WiFi_MAC.md5 = data["attention_md5"];
                         }
                         }
-                        break;
-                    }
-            }
-            watch.Stop();
-            Log.WriteInfoLog(string.Format("[GetKeys] order={0},sn={1},keytype={2},keymessage={3}, Elapsed={4}", order,sn,keytype,keymessage,watch.Elapsed.TotalMilliseconds));
-            return true;
-        }
 
 
-        public static bool GetWidevineAnAttestationKey(
-            string url,
-            string sn,
-            string keytype,
-            SQLiteConnection sqliteConn,
-            out bool isAndroidTV,
-            out string Widevinekey,
-            out string Attestationkey,
-            out string error,
-            string order,
-            out string AttestationMd5)
-        {
-            string code;
-            string desc;
-            isAndroidTV = false;
-            error = "";
-            Widevinekey = "";
-            Attestationkey = "";
-            AttestationMd5 = "";
+                        if (data.ContainsKey("dsn") && data.ContainsKey("dsn_md5"))
+                        {
+                            keys.WiFi_MAC.data = data["dsn"];
+                            keys.WiFi_MAC.md5 = data["dsn_md5"];
+                        }
 
 
-            HttpHelper http = new HttpHelper();
-            HttpItem item = new HttpItem()
-            {
-                Encoding = Encoding.Default,
-                Method = "post",
-                ContentType = "application/x-www-form-urlencoded",
-                KeepAlive = false
-            };
+                        if (data.ContainsKey("dak") && data.ContainsKey("dak_md5"))
+                        {
+                            keys.WiFi_MAC.data = data["dak"];
+                            keys.WiFi_MAC.md5 = data["dak_md5"];
+                        }
 
 
-            // 计算函数耗时;
-            Stopwatch watch = new Stopwatch();
-            watch.Start();
-            item.URL = url + "/getWidevineAndAttestation.do?";
-            item.Postdata = "type=" + keytype + "&order=" + order + "&sn=" + sn;
-            HttpResult result = http.GetHtml(item);
-            if (result.StatusCode == System.Net.HttpStatusCode.OK)
-            {
-                Log.WriteGetKeyLog("\r\nGetWidevine_KEY:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                if (!Xmlconfig.GetWidevineAndAttestationKeyXml(result.Html, "response", out code, out desc, out isAndroidTV, out Widevinekey, out Attestationkey, out AttestationMd5))
-                {
-                    error = desc;
-                    ReportErrormsg("Fail to parse widevineAndAttestation", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                    return false;
+                        result = true;
+                    }
                 }
                 }
             }
             }
-            else
-            {
-                error = result.StatusDescription;
-                ReportErrormsg("Fail to get widevineAndAttestation", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                return false;
-            }
-
             watch.Stop();
             watch.Stop();
-            Log.WriteInfoLog(string.Format("[getWidevineAndAttestation] order={0},sn={1},keytype={2},Elapsed={3}", order, sn, keytype, watch.Elapsed.TotalMilliseconds));
-            return true;
-        }
+            Log.WriteInfoLog(string.Format("[GetKeysOnline] order={0},sn={1},Elapsed={2}", order, sn, watch.Elapsed.TotalMilliseconds));
 
 
-        public static bool GetAcasKey(string url, string keymessage, string sn, string keytype, SQLiteConnection sqliteConn, string order, out string acaskey_data, out string acaskey_datamd5, out string acaskey_tool, out string acaskey_toolmd5, out string error)
-        {
-            string code;
-            string desc;
-            error = "";
-            acaskey_data = "";
-            acaskey_datamd5 = "";
-            acaskey_tool = "";
-            acaskey_toolmd5 = "";
-            HttpHelper http = new HttpHelper();
-            HttpItem item = new HttpItem()
-            {
-                Encoding = Encoding.Default,
-                Method = "post",
-                ContentType = "application/x-www-form-urlencoded",
-                KeepAlive = false
-            };
+            if ( !result )
+                ReportErrormsg("Fail to GetIDMKeys ", msg + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + httpResult.Html, connection);
 
 
-            // 计算函数耗时;
-            Stopwatch watch = new Stopwatch();
-            watch.Start();
-            item.URL = url + "/getAcasKey.do?";
-            item.Postdata = "type=" + keytype + "&sn=" + sn;
-            if (sn.Trim().Length > 0)
-                item.Postdata += "&order=" + order;
-            HttpResult result = http.GetHtml(item);
-            if (result.StatusCode == System.Net.HttpStatusCode.OK)
-            {
-                Log.WriteGetKeyLog("\r\nGet ACAS key:\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html);
-                if (Xmlconfig.Get2KeyInfoFromXml(result.Html, "acasKey_data", "acasKey_tool", out code, out desc, out acaskey_data, out acaskey_datamd5, out acaskey_tool, out acaskey_toolmd5))
-                {
-
-                }
-                else
-                {
-                    error = desc;
-                    ReportErrormsg("Fail to parse ACAS key", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                    return false;
-                }
-            }
-            else
-            {
-                error = result.StatusDescription;
-                ReportErrormsg("Fail to get ACAS key", error + "\r\n" + item.URL + "\r\n" + item.Postdata + "\r\n" + result.Html, sqliteConn);
-                return false;
-            }
-            watch.Stop();
-            Log.WriteInfoLog(string.Format("[getAcasKey] order={0},sn={1},keytype={2},Elapsed={3}", order, sn, keytype, watch.Elapsed.TotalMilliseconds));
-            return true;
+            return result;
         }
         }
 
 
         /// <summary>
         /// <summary>
@@ -2800,7 +2376,7 @@ namespace MOKA_Factory_Tools
                         msg = jObject["Error"].Value<string>();
                         msg = jObject["Error"].Value<string>();
                         string data = jObject["Data"].ToString();
                         string data = jObject["Data"].ToString();
 
 
-                        if (bResult && data.StartsWith("成功"))
+                        if (bResult)
                         {
                         {
                             return true;
                             return true;
                         }
                         }
@@ -3255,79 +2831,28 @@ namespace MOKA_Factory_Tools
                     foreach (FileInfo keyfile in Getkeyfile.GetFiles())
                     foreach (FileInfo keyfile in Getkeyfile.GetFiles())
                     {
                     {
                         filename = keyfile.FullName;
                         filename = keyfile.FullName;
-                        if (keyfile.Name.Contains("Online"))
+                        try
                         {
                         {
-                            try
+                            fskey = new FileStream(keyfile.FullName.ToString(), FileMode.Open, FileAccess.ReadWrite, FileShare.None);
                             {
                             {
-                                if (localmidList.host == null)
+                                brkey = new StreamReader(fskey);
                                 {
                                 {
-                                    if (CommonMethod.GetMidInfo(TestMode.serverurl, order, TestMode.MAC, "", "", errorDBNow, out localmidList))
+                                    if (fskey.Length == filesize || filesize == -1)
                                     {
                                     {
-                                        ;
+                                        data = brkey.ReadToEnd();
+                                        return true;
                                     }
                                     }
                                     else
                                     else
                                     {
                                     {
+                                        error = "File size error.\r\nFilename:" + keyfile.Name + "\r\nFilesize:" + fskey.Length.ToString();
                                         return false;
                                         return false;
                                     }
                                     }
                                 }
                                 }
-                                if (keytype == "DeviceID")
-                                    localmidList.keytype["DeviceID"] = "devicetype=tcl_unknown_model";
-                                else if (keytype == "MAC")
-                                    keytype = "MAC";
-                                else if (keytype == "HDCPKEY")
-                                    keytype = "HDCP_KEY";
-                                else if (keytype == "HDCPKEY22")
-                                    keytype = "HDCP2.2_KEY";
-                                else if (keytype == "ESN")
-                                    keytype = "NETFILX_ESN";
-                                else if (keytype == "Widevine")
-                                    keytype = "Widevine_KEY";
-                                else if (keytype == "WiDi")
-                                    keytype = "WiDi";
-                                else if (keytype == "CIKEY")
-                                    keytype = "CI_PLUS_KEY";
-                                if (CommonMethod.GetKeys(localmidList.host, keytype, SN, localmidList.keytype[keytype], errorDBNow, out string did, out error, order, out string md5))
-                                {
-                                    data = did;
-                                    Log.WriteGetKeyLog("\r\n" + keytype + "= " + data);
-                                    return true;
-                                }
-                                else
-                                {
-                                    return false;
-                                }
-                            }
-                            catch (Exception ex)
-                            {
-                                error = ex.Message;
-                                return false;
                             }
                             }
                         }
                         }
-                        else
+                        catch
                         {
                         {
-                            try
-                            {
-                                fskey = new FileStream(keyfile.FullName.ToString(), FileMode.Open, FileAccess.ReadWrite, FileShare.None);
-                                {
-                                    brkey = new StreamReader(fskey);
-                                    {
-                                        if (fskey.Length == filesize || filesize == -1)
-                                        {
-                                            data = brkey.ReadToEnd();
-                                            return true;
-                                        }
-                                        else
-                                        {
-                                            error = "File size error.\r\nFilename:" + keyfile.Name + "\r\nFilesize:" + fskey.Length.ToString();
-                                            return false;
-                                        }
-                                    }
-                                }
-                            }
-                            catch
-                            {
-                                ;
-                            }
+                            ;
                         }
                         }
                     }
                     }
                     return false;
                     return false;
@@ -3360,86 +2885,29 @@ namespace MOKA_Factory_Tools
                     foreach (FileInfo keyfile in Getkeyfile.GetFiles())
                     foreach (FileInfo keyfile in Getkeyfile.GetFiles())
                     {
                     {
                         filename = keyfile.FullName;
                         filename = keyfile.FullName;
-                        if (keyfile.Name.Contains("Online"))
+                        try
                         {
                         {
-                            try
+                            fskey = new FileStream(keyfile.FullName.ToString(), FileMode.Open, FileAccess.Read, FileShare.None);
                             {
                             {
-                                if (localmidList.host == null)
+                                brkey = new BinaryReader(fskey);
                                 {
                                 {
-                                    if (CommonMethod.GetMidInfo(TestMode.serverurl, order, TestMode.MAC, "", "", errorDBNow, out localmidList))
+                                    if (fskey.Length == filesize || filesize == -1)
                                     {
                                     {
-                                        ;
+                                        data = SerialInit.ByteToHex(brkey.ReadBytes((int)fskey.Length));
+                                        data = data.Replace(" ", "");
+                                        return true;
                                     }
                                     }
                                     else
                                     else
                                     {
                                     {
+                                        error = "File size error.\r\nFilename: " + keyfile.Name + "\r\nFilesize: " + fskey.Length.ToString();
                                         return false;
                                         return false;
                                     }
                                     }
                                 }
                                 }
-                                if (keytype == "DeviceID")
-                                    localmidList.keytype["DeviceID"] = "devicetype=tcl_unknown_model";
-                                else if (keytype == "MAC")
-                                    keytype = "MAC";
-                                else if (keytype == "HDCPKEY")
-                                    keytype = "HDCP_KEY";
-                                else if (keytype == "HDCPKEY22")
-                                    keytype = "HDCP2.2_KEY";
-                                else if (keytype == "ESN")
-                                    keytype = "NETFILX_ESN";
-                                else if (keytype == "Widevine")
-                                    keytype = "Widevine_KEY";
-                                else if (keytype == "WiDi")
-                                    keytype = "WiDi";
-                                else if (keytype == "CIKEY")
-                                    keytype = "CI_PLUS_KEY";
-                                else if (keytype == "MGK")
-                                    keytype = "MGK_KEY";
-                                else if (keytype == "Attestation")
-                                    keytype = "Attestation";
-                                else if (keytype == "Fairplay")
-                                    keytype = "Fairplay_KEY";
-                                if (CommonMethod.GetKeys(localmidList.host, keytype, SN, localmidList.keytype[keytype], errorDBNow, out string did, out error, order, out string md5))
-                                {
-                                    data = did;
-                                    Log.WriteGetKeyLog("\r\n" + keytype + "= " + data);
-                                    return true;
-                                }
-                                else
-                                {
-                                    return false;
-                                }
-                            }
-                            catch (Exception ex)
-                            {
-                                error = ex.Message;
-                                return false;
                             }
                             }
                         }
                         }
-                        else
+                        catch
                         {
                         {
-                            try
-                            {
-                                fskey = new FileStream(keyfile.FullName.ToString(), FileMode.Open, FileAccess.Read, FileShare.None);
-                                {
-                                    brkey = new BinaryReader(fskey);
-                                    {
-                                        if (fskey.Length == filesize || filesize == -1)
-                                        {
-                                            data = SerialInit.ByteToHex(brkey.ReadBytes((int)fskey.Length));
-                                            data = data.Replace(" ", "");
-                                            return true;
-                                        }
-                                        else
-                                        {
-                                            error = "File size error.\r\nFilename: " + keyfile.Name + "\r\nFilesize: " + fskey.Length.ToString();
-                                            return false;
-                                        }
-                                    }
-                                }
-                            }
-                            catch
-                            {
-                                ;
-                            }
+                            ;
                         }
                         }
                     }
                     }
                     return false;
                     return false;

+ 16 - 22
FactoryTool_CShare/Models/StructList.cs

@@ -236,12 +236,22 @@ namespace MOKA_Factory_Tools
 
 
     public class KeyData
     public class KeyData
     {
     {
-        public bool enable { get; set; } = false;   // 是否要抄写;
+        // 要抄写的Key的名称;
+        public string name { get; set; }
+        // 是否要抄写该Key;
+        public bool enable { get; set; } = false;
+        // 要抄写的Key数据;
         public string data { get; set; }
         public string data { get; set; }
-        public bool result { get; set; } = false;
+        // 要抄写的Key数据md5值;
+        public string md5 { get;set; }
+        // 抄写结果;
+        public bool result { get; set; } = false; 
+        // 抄写结果描述;
+        public string msg { get; set; }
+        // 要抄写的Key数据长度;
         public int Length
         public int Length
         {
         {
-            get { return data.Length; }
+            get { return data == null ? 0 : data.Length; }
         }
         }
 
 
         /// <summary>
         /// <summary>
@@ -252,22 +262,6 @@ namespace MOKA_Factory_Tools
         {
         {
             return v.data;
             return v.data;
         }
         }
-
-#if false
-        /// <summary>
-        /// KeyData did; string value="xxxx";did = (KeyData)value;
-        /// </summary>
-        /// <param name="v"></param>
-        public static explicit operator KeyData(string v)
-        {
-            if (v == null)
-                return null;
-            KeyData kd = new KeyData();
-            kd.result = false;
-            kd.data = v;
-            return kd;
-        }
-#endif
     }
     }
 
 
     public class KeyInfo
     public class KeyInfo
@@ -322,7 +316,7 @@ namespace MOKA_Factory_Tools
         public string mac { get; set; }
         public string mac { get; set; }
     }
     }
 
 
-    public class ReadCheck
+    public class Config_ReadCheck
     {
     {
         public bool PIDReadcheck { get; set; }
         public bool PIDReadcheck { get; set; }
         public bool OSDReadcheck { get; set; }
         public bool OSDReadcheck { get; set; }
@@ -355,7 +349,7 @@ namespace MOKA_Factory_Tools
         public bool DAKReadcheck { get; set; }
         public bool DAKReadcheck { get; set; }
     }
     }
 
 
-    public class WriteCheck
+    public class Config_WriteCheck
     {
     {
         public bool DIDCheckcheck { get; set; }
         public bool DIDCheckcheck { get; set; }
         public bool MacCheckcheck { get; set; }
         public bool MacCheckcheck { get; set; }
@@ -382,7 +376,7 @@ namespace MOKA_Factory_Tools
         public bool DAKCheckcheck { get; set; }
         public bool DAKCheckcheck { get; set; }
     }
     }
 
 
-    public class WriteDone
+    public class Config_WriteDone
     {
     {
         public bool PIDWrite_YesNo { get; set; }
         public bool PIDWrite_YesNo { get; set; }
         public int PIDWriteDelay { get; set; }
         public int PIDWriteDelay { get; set; }

+ 88 - 88
FactoryTool_CShare/Views/Main.cs

@@ -25,9 +25,9 @@ namespace MOKA_Factory_Tools
         MidList midList1 = new MidList();
         MidList midList1 = new MidList();
         UpgradeMsgList UpgradeMsgList1 = new UpgradeMsgList();
         UpgradeMsgList UpgradeMsgList1 = new UpgradeMsgList();
         MidAddress midAddress1 = new MidAddress();
         MidAddress midAddress1 = new MidAddress();
-        ReadCheck ReadCheck1 = new ReadCheck();
-        WriteCheck WriteCheck1 = new WriteCheck();
-        WriteDone WriteDone1 = new WriteDone();
+        Config_ReadCheck cfg_readcheck = new Config_ReadCheck();
+        Config_WriteCheck cfg_writecheck = new Config_WriteCheck();
+        Config_WriteDone cfg_writedone = new Config_WriteDone();
         FunctionSetting functionSetting1 = new FunctionSetting();
         FunctionSetting functionSetting1 = new FunctionSetting();
         SQLiteConnection LocalDB = null;
         SQLiteConnection LocalDB = null;
         SQLiteConnection ErrorDB = null;
         SQLiteConnection ErrorDB = null;
@@ -209,7 +209,7 @@ namespace MOKA_Factory_Tools
 
 
                                     };
                                     };
 
 
-                                    OperationPanel operationPanel1 = new OperationPanel(this, LocalDB, ErrorDB, midAddress1, functionSetting1, WriteCheck1, ReadCheck1, WriteDone1, Preload.Checked, midList1, OrderText.Text.Trim());
+                                    OperationPanel operationPanel1 = new OperationPanel(this, LocalDB, ErrorDB, midAddress1, functionSetting1, cfg_writecheck, cfg_readcheck, cfg_writedone, Preload.Checked, midList1, OrderText.Text.Trim());
                                     operationPanel1.StartPosition = FormStartPosition.Manual;
                                     operationPanel1.StartPosition = FormStartPosition.Manual;
                                     if ((this.Right + operationPanel1.Size.Width * formlocationmsg.Count) > Screen.PrimaryScreen.Bounds.Width && LocationMark)
                                     if ((this.Right + operationPanel1.Size.Width * formlocationmsg.Count) > Screen.PrimaryScreen.Bounds.Width && LocationMark)
                                     {
                                     {
@@ -344,7 +344,7 @@ namespace MOKA_Factory_Tools
                                                     LocalDB = new SQLiteConnection("data source=" + dbPath);
                                                     LocalDB = new SQLiteConnection("data source=" + dbPath);
                                                     LocalDB.Open();
                                                     LocalDB.Open();
                                                 }
                                                 }
-                                                OperationPanel operationPanel1 = new OperationPanel(this, LocalDB, ErrorDB, midAddress1, functionSetting1, WriteCheck1, ReadCheck1, WriteDone1, Preload.Checked, midList1, OrderText.Text.Trim());
+                                                OperationPanel operationPanel1 = new OperationPanel(this, LocalDB, ErrorDB, midAddress1, functionSetting1, cfg_writecheck, cfg_readcheck, cfg_writedone, Preload.Checked, midList1, OrderText.Text.Trim());
                                                 operationPanel1.StartPosition = FormStartPosition.Manual;
                                                 operationPanel1.StartPosition = FormStartPosition.Manual;
                                                 if ((this.Right + operationPanel1.Size.Width * formlocationmsg.Count) > Screen.PrimaryScreen.Bounds.Width && LocationMark)
                                                 if ((this.Right + operationPanel1.Size.Width * formlocationmsg.Count) > Screen.PrimaryScreen.Bounds.Width && LocationMark)
                                                 {
                                                 {
@@ -445,7 +445,7 @@ namespace MOKA_Factory_Tools
                         }
                         }
                         try
                         try
                         {
                         {
-                            OperationPanel operationPanel1 = new OperationPanel(this, LocalDB, ErrorDB, midAddress1, functionSetting1, WriteCheck1, ReadCheck1, WriteDone1, Preload.Checked, midList1, OrderText.Text.Trim());
+                            OperationPanel operationPanel1 = new OperationPanel(this, LocalDB, ErrorDB, midAddress1, functionSetting1, cfg_writecheck, cfg_readcheck, cfg_writedone, Preload.Checked, midList1, OrderText.Text.Trim());
                             operationPanel1.StartPosition = FormStartPosition.Manual;
                             operationPanel1.StartPosition = FormStartPosition.Manual;
                             if ((this.Right + operationPanel1.Size.Width * formlocationmsg.Count) > Screen.PrimaryScreen.Bounds.Width && LocationMark)
                             if ((this.Right + operationPanel1.Size.Width * formlocationmsg.Count) > Screen.PrimaryScreen.Bounds.Width && LocationMark)
                             {
                             {
@@ -585,7 +585,7 @@ namespace MOKA_Factory_Tools
                         };
                         };
                     }
                     }
 
 
-                    OperationPanel operationPanel1 = new OperationPanel(this, LocalDB, ErrorDB, null, functionSetting1, WriteCheck1, ReadCheck1, WriteDone1, Preload.Checked, midList1, OrderText.Text.Trim());
+                    OperationPanel operationPanel1 = new OperationPanel(this, LocalDB, ErrorDB, null, functionSetting1, cfg_writecheck, cfg_readcheck, cfg_writedone, Preload.Checked, midList1, OrderText.Text.Trim());
                     operationPanel1.StartPosition = FormStartPosition.Manual;
                     operationPanel1.StartPosition = FormStartPosition.Manual;
                     if ((this.Right + operationPanel1.Size.Width * formlocationmsg.Count) > Screen.PrimaryScreen.Bounds.Width && LocationMark)
                     if ((this.Right + operationPanel1.Size.Width * formlocationmsg.Count) > Screen.PrimaryScreen.Bounds.Width && LocationMark)
                     {
                     {
@@ -831,93 +831,93 @@ namespace MOKA_Factory_Tools
                 }
                 }
 
 
                 #region ReadCheck配置读取
                 #region ReadCheck配置读取
-                ReadCheck1.PIDReadcheck = jObject["ReadCheck"]["PID"].Value<bool>();
-                ReadCheck1.OSDReadcheck = jObject["ReadCheck"]["OSD"].Value<bool>();
-                ReadCheck1.SHOPReadcheck = jObject["ReadCheck"]["SHOP"].Value<bool>();
-                ReadCheck1.DIDReadcheck = jObject["ReadCheck"]["DID"].Value<bool>();
-                ReadCheck1.MacReadcheck = jObject["ReadCheck"]["MAC"].Value<bool>();
-                ReadCheck1.HDCPReadcheck = jObject["ReadCheck"]["HDCP"].Value<bool>();
-                ReadCheck1.HDCP22Readcheck = jObject["ReadCheck"]["HDCP22"].Value<bool>();
-                ReadCheck1.WiDiReadcheck = jObject["ReadCheck"]["WIDI"].Value<bool>();
-                ReadCheck1.WidevineReadcheck = jObject["ReadCheck"]["WIDEVINE"].Value<bool>();
-                ReadCheck1.ESNReadcheck = jObject["ReadCheck"]["ESN"].Value<bool>();
-                ReadCheck1.CI_plusReadcheck = jObject["ReadCheck"]["CI"].Value<bool>();
-                ReadCheck1.AttestationReadcheck = jObject["ReadCheck"]["Attestation"].Value<bool>();
-                ReadCheck1.MGKReadcheck = jObject["ReadCheck"]["MGK"].Value<bool>();
-                ReadCheck1.FairplayReadcheck = jObject["ReadCheck"]["Fairplay"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "Fairplay") : jObject["ReadCheck"]["Fairplay"].Value<bool>();
-                ReadCheck1.ECPReadcheck = jObject["ReadCheck"]["ECP"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "ECP") : jObject["ReadCheck"]["ECP"].Value<bool>();
-                ReadCheck1.WifiMacReadcheck = jObject["ReadCheck"]["WifiMac"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "WifiMac") : jObject["ReadCheck"]["WifiMac"].Value<bool>();
-                ReadCheck1.BTMacReadcheck = jObject["ReadCheck"]["BTMac"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "BTMac") : jObject["ReadCheck"]["BTMac"].Value<bool>();
-                ReadCheck1.LEKReadcheck = jObject["ReadCheck"]["LEK"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "LEK") : jObject["ReadCheck"]["LEK"].Value<bool>();
-                ReadCheck1.PEKReadcheck = jObject["ReadCheck"]["PEK"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "PEK") : jObject["ReadCheck"]["PEK"].Value<bool>();
-                ReadCheck1.PlayreadyReadcheck = jObject["ReadCheck"]["Playready"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "Playready") : jObject["ReadCheck"]["Playready"].Value<bool>();
-                ReadCheck1.HashReadcheck = jObject["ReadCheck"]["Hash"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "Hash") : jObject["ReadCheck"]["Hash"].Value<bool>();
-                ReadCheck1.DSNReadcheck = jObject["ReadCheck"]["DSN"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "DSN") : jObject["ReadCheck"]["DSN"].Value<bool>();
-                ReadCheck1.YouTubeReadcheck = jObject["ReadCheck"]["YouTube"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "YouTube") : jObject["ReadCheck"]["YouTube"].Value<bool>();
-                ReadCheck1.EDIDPIDReadcheck = jObject["ReadCheck"]["EDIDPID"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "EDIDPID") : jObject["ReadCheck"]["EDIDPID"].Value<bool>();
-                ReadCheck1.EDIDModeNameReadcheck = jObject["ReadCheck"]["EDIDModeName"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "EDIDModeName") : jObject["ReadCheck"]["EDIDModeName"].Value<bool>();
-                ReadCheck1.ACASKeyReadcheck = jObject["ReadCheck"]["ACASKey"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "ACASKey") : jObject["ReadCheck"]["ACASKey"].Value<bool>();
-                ReadCheck1.FVPReadcheck = jObject["ReadCheck"]["FVP"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "FVP") : jObject["ReadCheck"]["FVP"].Value<bool>();
-                ReadCheck1.DAKReadcheck = jObject["ReadCheck"]["DAK"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "DAK") : jObject["ReadCheck"]["DAK"].Value<bool>();
+                cfg_readcheck.PIDReadcheck = jObject["ReadCheck"]["PID"].Value<bool>();
+                cfg_readcheck.OSDReadcheck = jObject["ReadCheck"]["OSD"].Value<bool>();
+                cfg_readcheck.SHOPReadcheck = jObject["ReadCheck"]["SHOP"].Value<bool>();
+                cfg_readcheck.DIDReadcheck = jObject["ReadCheck"]["DID"].Value<bool>();
+                cfg_readcheck.MacReadcheck = jObject["ReadCheck"]["MAC"].Value<bool>();
+                cfg_readcheck.HDCPReadcheck = jObject["ReadCheck"]["HDCP"].Value<bool>();
+                cfg_readcheck.HDCP22Readcheck = jObject["ReadCheck"]["HDCP22"].Value<bool>();
+                cfg_readcheck.WiDiReadcheck = jObject["ReadCheck"]["WIDI"].Value<bool>();
+                cfg_readcheck.WidevineReadcheck = jObject["ReadCheck"]["WIDEVINE"].Value<bool>();
+                cfg_readcheck.ESNReadcheck = jObject["ReadCheck"]["ESN"].Value<bool>();
+                cfg_readcheck.CI_plusReadcheck = jObject["ReadCheck"]["CI"].Value<bool>();
+                cfg_readcheck.AttestationReadcheck = jObject["ReadCheck"]["Attestation"].Value<bool>();
+                cfg_readcheck.MGKReadcheck = jObject["ReadCheck"]["MGK"].Value<bool>();
+                cfg_readcheck.FairplayReadcheck = jObject["ReadCheck"]["Fairplay"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "Fairplay") : jObject["ReadCheck"]["Fairplay"].Value<bool>();
+                cfg_readcheck.ECPReadcheck = jObject["ReadCheck"]["ECP"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "ECP") : jObject["ReadCheck"]["ECP"].Value<bool>();
+                cfg_readcheck.WifiMacReadcheck = jObject["ReadCheck"]["WifiMac"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "WifiMac") : jObject["ReadCheck"]["WifiMac"].Value<bool>();
+                cfg_readcheck.BTMacReadcheck = jObject["ReadCheck"]["BTMac"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "BTMac") : jObject["ReadCheck"]["BTMac"].Value<bool>();
+                cfg_readcheck.LEKReadcheck = jObject["ReadCheck"]["LEK"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "LEK") : jObject["ReadCheck"]["LEK"].Value<bool>();
+                cfg_readcheck.PEKReadcheck = jObject["ReadCheck"]["PEK"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "PEK") : jObject["ReadCheck"]["PEK"].Value<bool>();
+                cfg_readcheck.PlayreadyReadcheck = jObject["ReadCheck"]["Playready"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "Playready") : jObject["ReadCheck"]["Playready"].Value<bool>();
+                cfg_readcheck.HashReadcheck = jObject["ReadCheck"]["Hash"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "Hash") : jObject["ReadCheck"]["Hash"].Value<bool>();
+                cfg_readcheck.DSNReadcheck = jObject["ReadCheck"]["DSN"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "DSN") : jObject["ReadCheck"]["DSN"].Value<bool>();
+                cfg_readcheck.YouTubeReadcheck = jObject["ReadCheck"]["YouTube"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "YouTube") : jObject["ReadCheck"]["YouTube"].Value<bool>();
+                cfg_readcheck.EDIDPIDReadcheck = jObject["ReadCheck"]["EDIDPID"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "EDIDPID") : jObject["ReadCheck"]["EDIDPID"].Value<bool>();
+                cfg_readcheck.EDIDModeNameReadcheck = jObject["ReadCheck"]["EDIDModeName"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "EDIDModeName") : jObject["ReadCheck"]["EDIDModeName"].Value<bool>();
+                cfg_readcheck.ACASKeyReadcheck = jObject["ReadCheck"]["ACASKey"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "ACASKey") : jObject["ReadCheck"]["ACASKey"].Value<bool>();
+                cfg_readcheck.FVPReadcheck = jObject["ReadCheck"]["FVP"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "FVP") : jObject["ReadCheck"]["FVP"].Value<bool>();
+                cfg_readcheck.DAKReadcheck = jObject["ReadCheck"]["DAK"] == null ? CommonMethod.InsertJsonConfig("ReadCheck", "DAK") : jObject["ReadCheck"]["DAK"].Value<bool>();
                 #endregion
                 #endregion
 
 
                 #region WriteCheck配置读取
                 #region WriteCheck配置读取
-                WriteCheck1.DIDCheckcheck = jObject["WriteCheck"]["DID"].Value<bool>();
-                WriteCheck1.MacCheckcheck = jObject["WriteCheck"]["MAC"].Value<bool>();
-                WriteCheck1.HDCPCheckcheck = jObject["WriteCheck"]["HDCP"].Value<bool>();
-                WriteCheck1.HDCP22Checkcheck = jObject["WriteCheck"]["HDCP22"].Value<bool>();
-                WriteCheck1.WiDiCheckcheck = jObject["WriteCheck"]["WIDI"].Value<bool>();
-                WriteCheck1.WidevineCheckcheck = jObject["WriteCheck"]["WIDEVINE"].Value<bool>();
-                WriteCheck1.ESNCheckcheck = jObject["WriteCheck"]["ESN"].Value<bool>();
-                WriteCheck1.CI_plusCheckcheck = jObject["WriteCheck"]["CI"].Value<bool>();
-                WriteCheck1.AttestationCheckcheck = jObject["WriteCheck"]["Attestation"].Value<bool>();
-                WriteCheck1.MGKCheckcheck = jObject["WriteCheck"]["MGK"].Value<bool>();
-                WriteCheck1.FairplayCheckcheck = jObject["WriteCheck"]["Fairplay"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "Fairplay") : jObject["WriteCheck"]["Fairplay"].Value<bool>();
-                WriteCheck1.ECPCheckcheck = jObject["WriteCheck"]["ECP"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "ECP") : jObject["WriteCheck"]["ECP"].Value<bool>();
-                WriteCheck1.WifiMacCheckcheck = jObject["WriteCheck"]["WifiMac"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "WifiMac") : jObject["WriteCheck"]["WifiMac"].Value<bool>();
-                WriteCheck1.BTMacCheckcheck = jObject["WriteCheck"]["BTMac"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "BTMac") : jObject["WriteCheck"]["BTMac"].Value<bool>();
-                WriteCheck1.LEKCheckcheck = jObject["WriteCheck"]["LEK"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "LEK") : jObject["WriteCheck"]["LEK"].Value<bool>();
-                WriteCheck1.PEKCheckcheck = jObject["WriteCheck"]["PEK"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "PEK") : jObject["WriteCheck"]["PEK"].Value<bool>();
-                WriteCheck1.PlayreadyCheckcheck = jObject["WriteCheck"]["Playready"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "Playready") : jObject["WriteCheck"]["Playready"].Value<bool>();
-                WriteCheck1.HashCheckcheck = jObject["WriteCheck"]["Hash"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "Hash") : jObject["WriteCheck"]["Hash"].Value<bool>();
-                WriteCheck1.DSNCheckcheck = jObject["WriteCheck"]["DSN"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "DSN") : jObject["WriteCheck"]["DSN"].Value<bool>();
-                WriteCheck1.YouTubeCheckcheck = jObject["WriteCheck"]["YouTube"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "YouTube") : jObject["WriteCheck"]["YouTube"].Value<bool>();
-                WriteCheck1.ACASKeyCheckcheck = jObject["WriteCheck"]["ACASKey"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "ACASKey") : jObject["WriteCheck"]["ACASKey"].Value<bool>();
-                WriteCheck1.FVPCheckcheck = jObject["WriteCheck"]["FVP"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "FVP") : jObject["WriteCheck"]["FVP"].Value<bool>();
-                WriteCheck1.DAKCheckcheck = jObject["WriteCheck"]["DAK"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "DAK") : jObject["WriteCheck"]["DAK"].Value<bool>();
+                cfg_writecheck.DIDCheckcheck = jObject["WriteCheck"]["DID"].Value<bool>();
+                cfg_writecheck.MacCheckcheck = jObject["WriteCheck"]["MAC"].Value<bool>();
+                cfg_writecheck.HDCPCheckcheck = jObject["WriteCheck"]["HDCP"].Value<bool>();
+                cfg_writecheck.HDCP22Checkcheck = jObject["WriteCheck"]["HDCP22"].Value<bool>();
+                cfg_writecheck.WiDiCheckcheck = jObject["WriteCheck"]["WIDI"].Value<bool>();
+                cfg_writecheck.WidevineCheckcheck = jObject["WriteCheck"]["WIDEVINE"].Value<bool>();
+                cfg_writecheck.ESNCheckcheck = jObject["WriteCheck"]["ESN"].Value<bool>();
+                cfg_writecheck.CI_plusCheckcheck = jObject["WriteCheck"]["CI"].Value<bool>();
+                cfg_writecheck.AttestationCheckcheck = jObject["WriteCheck"]["Attestation"].Value<bool>();
+                cfg_writecheck.MGKCheckcheck = jObject["WriteCheck"]["MGK"].Value<bool>();
+                cfg_writecheck.FairplayCheckcheck = jObject["WriteCheck"]["Fairplay"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "Fairplay") : jObject["WriteCheck"]["Fairplay"].Value<bool>();
+                cfg_writecheck.ECPCheckcheck = jObject["WriteCheck"]["ECP"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "ECP") : jObject["WriteCheck"]["ECP"].Value<bool>();
+                cfg_writecheck.WifiMacCheckcheck = jObject["WriteCheck"]["WifiMac"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "WifiMac") : jObject["WriteCheck"]["WifiMac"].Value<bool>();
+                cfg_writecheck.BTMacCheckcheck = jObject["WriteCheck"]["BTMac"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "BTMac") : jObject["WriteCheck"]["BTMac"].Value<bool>();
+                cfg_writecheck.LEKCheckcheck = jObject["WriteCheck"]["LEK"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "LEK") : jObject["WriteCheck"]["LEK"].Value<bool>();
+                cfg_writecheck.PEKCheckcheck = jObject["WriteCheck"]["PEK"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "PEK") : jObject["WriteCheck"]["PEK"].Value<bool>();
+                cfg_writecheck.PlayreadyCheckcheck = jObject["WriteCheck"]["Playready"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "Playready") : jObject["WriteCheck"]["Playready"].Value<bool>();
+                cfg_writecheck.HashCheckcheck = jObject["WriteCheck"]["Hash"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "Hash") : jObject["WriteCheck"]["Hash"].Value<bool>();
+                cfg_writecheck.DSNCheckcheck = jObject["WriteCheck"]["DSN"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "DSN") : jObject["WriteCheck"]["DSN"].Value<bool>();
+                cfg_writecheck.YouTubeCheckcheck = jObject["WriteCheck"]["YouTube"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "YouTube") : jObject["WriteCheck"]["YouTube"].Value<bool>();
+                cfg_writecheck.ACASKeyCheckcheck = jObject["WriteCheck"]["ACASKey"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "ACASKey") : jObject["WriteCheck"]["ACASKey"].Value<bool>();
+                cfg_writecheck.FVPCheckcheck = jObject["WriteCheck"]["FVP"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "FVP") : jObject["WriteCheck"]["FVP"].Value<bool>();
+                cfg_writecheck.DAKCheckcheck = jObject["WriteCheck"]["DAK"] == null ? CommonMethod.InsertJsonConfig("WriteCheck", "DAK") : jObject["WriteCheck"]["DAK"].Value<bool>();
                 #endregion
                 #endregion
 
 
                 #region WriteDone配置读取
                 #region WriteDone配置读取
-                WriteDone1.PIDWrite_YesNo = jObject["WriteDone"]["PID"].Value<bool>();
-                WriteDone1.PIDWriteDelay = jObject["WriteDone"]["PIDWirteDelay"].Value<int>();
-                WriteDone1.ClientTypeCheck_YesNo = jObject["WriteDone"]["ClientType"].Value<bool>();
-                WriteDone1.SoftwareVersionCheck_YesNo = jObject["WriteDone"]["SoftwareVersion"].Value<bool>();
-                WriteDone1.DIDWrite_YesNo = jObject["WriteDone"]["DID"].Value<bool>();
-                WriteDone1.MacWrite_YesNo = jObject["WriteDone"]["MAC"].Value<bool>();
-                WriteDone1.HDCPWrite_YesNo = jObject["WriteDone"]["HDCP"].Value<bool>();
-                WriteDone1.HDCP22Write_YesNo = jObject["WriteDone"]["HDCP22"].Value<bool>();
-                WriteDone1.WiDiWrite_YesNo = jObject["WriteDone"]["WIDI"].Value<bool>();
-                WriteDone1.WidevineWrite_YesNo = jObject["WriteDone"]["WIDEVINE"].Value<bool>();
-                WriteDone1.ESNWrite_YesNo = jObject["WriteDone"]["ESN"].Value<bool>();
-                WriteDone1.CI_plusWrite_YesNo = jObject["WriteDone"]["CI"].Value<bool>();
-                WriteDone1.AttestationWrite_YesNo = jObject["WriteDone"]["Attestation"].Value<bool>();
-                WriteDone1.MGKWrite_YesNo = jObject["WriteDone"]["MGK"].Value<bool>();
-                WriteDone1.FairplayWrite_YesNo = jObject["WriteDone"]["Fairplay"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "Fairplay") : jObject["WriteDone"]["Fairplay"].Value<bool>();
-                WriteDone1.ECPWrite_YesNo = jObject["WriteDone"]["ECP"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "ECP") : jObject["WriteDone"]["ECP"].Value<bool>();
-                WriteDone1.WifiMacWrite_YesNo = jObject["WriteDone"]["WifiMac"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "WifiMac") : jObject["WriteDone"]["WifiMac"].Value<bool>();
-                WriteDone1.BTMacWrite_YesNo = jObject["WriteDone"]["BTMac"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "BTMac") : jObject["WriteDone"]["BTMac"].Value<bool>();
-                WriteDone1.LEKWrite_YesNo = jObject["WriteDone"]["LEK"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "LEK") : jObject["WriteDone"]["LEK"].Value<bool>();
-                WriteDone1.PEKWrite_YesNo = jObject["WriteDone"]["PEK"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "PEK") : jObject["WriteDone"]["PEK"].Value<bool>();
-                WriteDone1.PlayreadyWrite_YesNo = jObject["WriteDone"]["Playready"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "Playready") : jObject["WriteDone"]["Playready"].Value<bool>();
-                WriteDone1.HashWrite_YesNo = jObject["WriteDone"]["Hash"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "Hash") : jObject["WriteDone"]["Hash"].Value<bool>();
-                WriteDone1.DSNWrite_YesNo = jObject["WriteDone"]["DSN"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "DSN") : jObject["WriteDone"]["DSN"].Value<bool>();
-                WriteDone1.AutoWhiteBalance = jObject["WriteDone"]["AutoWhiteBalance"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "AutoWhiteBalance") : jObject["WriteDone"]["AutoWhiteBalance"].Value<bool>();
-                WriteDone1.YouTubeWrite_YesNo = jObject["WriteDone"]["YouTube"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "YouTube") : jObject["WriteDone"]["YouTube"].Value<bool>();
-                WriteDone1.EDIDPIDWrite_YesNo = jObject["WriteDone"]["EDIDPID"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "EDIDPID") : jObject["WriteDone"]["EDIDPID"].Value<bool>();
-                WriteDone1.EDIDModeNameWrite_YesNo = jObject["WriteDone"]["EDIDModeName"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "EDIDModeName") : jObject["WriteDone"]["EDIDModeName"].Value<bool>();
-                WriteDone1.ACASKeyWrite_YesNo = jObject["WriteDone"]["ACASKey"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "ACASKey") : jObject["WriteDone"]["ACASKey"].Value<bool>();
-                WriteDone1.FVPWrite_YesNo = jObject["WriteDone"]["FVP"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "FVP") : jObject["WriteDone"]["FVP"].Value<bool>();
-                WriteDone1.DAKWrite_YesNo = jObject["WriteDone"]["DAK"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "DAK") : jObject["WriteDone"]["DAK"].Value<bool>();
+                cfg_writedone.PIDWrite_YesNo = jObject["WriteDone"]["PID"].Value<bool>();
+                cfg_writedone.PIDWriteDelay = jObject["WriteDone"]["PIDWirteDelay"].Value<int>();
+                cfg_writedone.ClientTypeCheck_YesNo = jObject["WriteDone"]["ClientType"].Value<bool>();
+                cfg_writedone.SoftwareVersionCheck_YesNo = jObject["WriteDone"]["SoftwareVersion"].Value<bool>();
+                cfg_writedone.DIDWrite_YesNo = jObject["WriteDone"]["DID"].Value<bool>();
+                cfg_writedone.MacWrite_YesNo = jObject["WriteDone"]["MAC"].Value<bool>();
+                cfg_writedone.HDCPWrite_YesNo = jObject["WriteDone"]["HDCP"].Value<bool>();
+                cfg_writedone.HDCP22Write_YesNo = jObject["WriteDone"]["HDCP22"].Value<bool>();
+                cfg_writedone.WiDiWrite_YesNo = jObject["WriteDone"]["WIDI"].Value<bool>();
+                cfg_writedone.WidevineWrite_YesNo = jObject["WriteDone"]["WIDEVINE"].Value<bool>();
+                cfg_writedone.ESNWrite_YesNo = jObject["WriteDone"]["ESN"].Value<bool>();
+                cfg_writedone.CI_plusWrite_YesNo = jObject["WriteDone"]["CI"].Value<bool>();
+                cfg_writedone.AttestationWrite_YesNo = jObject["WriteDone"]["Attestation"].Value<bool>();
+                cfg_writedone.MGKWrite_YesNo = jObject["WriteDone"]["MGK"].Value<bool>();
+                cfg_writedone.FairplayWrite_YesNo = jObject["WriteDone"]["Fairplay"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "Fairplay") : jObject["WriteDone"]["Fairplay"].Value<bool>();
+                cfg_writedone.ECPWrite_YesNo = jObject["WriteDone"]["ECP"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "ECP") : jObject["WriteDone"]["ECP"].Value<bool>();
+                cfg_writedone.WifiMacWrite_YesNo = jObject["WriteDone"]["WifiMac"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "WifiMac") : jObject["WriteDone"]["WifiMac"].Value<bool>();
+                cfg_writedone.BTMacWrite_YesNo = jObject["WriteDone"]["BTMac"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "BTMac") : jObject["WriteDone"]["BTMac"].Value<bool>();
+                cfg_writedone.LEKWrite_YesNo = jObject["WriteDone"]["LEK"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "LEK") : jObject["WriteDone"]["LEK"].Value<bool>();
+                cfg_writedone.PEKWrite_YesNo = jObject["WriteDone"]["PEK"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "PEK") : jObject["WriteDone"]["PEK"].Value<bool>();
+                cfg_writedone.PlayreadyWrite_YesNo = jObject["WriteDone"]["Playready"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "Playready") : jObject["WriteDone"]["Playready"].Value<bool>();
+                cfg_writedone.HashWrite_YesNo = jObject["WriteDone"]["Hash"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "Hash") : jObject["WriteDone"]["Hash"].Value<bool>();
+                cfg_writedone.DSNWrite_YesNo = jObject["WriteDone"]["DSN"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "DSN") : jObject["WriteDone"]["DSN"].Value<bool>();
+                cfg_writedone.AutoWhiteBalance = jObject["WriteDone"]["AutoWhiteBalance"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "AutoWhiteBalance") : jObject["WriteDone"]["AutoWhiteBalance"].Value<bool>();
+                cfg_writedone.YouTubeWrite_YesNo = jObject["WriteDone"]["YouTube"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "YouTube") : jObject["WriteDone"]["YouTube"].Value<bool>();
+                cfg_writedone.EDIDPIDWrite_YesNo = jObject["WriteDone"]["EDIDPID"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "EDIDPID") : jObject["WriteDone"]["EDIDPID"].Value<bool>();
+                cfg_writedone.EDIDModeNameWrite_YesNo = jObject["WriteDone"]["EDIDModeName"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "EDIDModeName") : jObject["WriteDone"]["EDIDModeName"].Value<bool>();
+                cfg_writedone.ACASKeyWrite_YesNo = jObject["WriteDone"]["ACASKey"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "ACASKey") : jObject["WriteDone"]["ACASKey"].Value<bool>();
+                cfg_writedone.FVPWrite_YesNo = jObject["WriteDone"]["FVP"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "FVP") : jObject["WriteDone"]["FVP"].Value<bool>();
+                cfg_writedone.DAKWrite_YesNo = jObject["WriteDone"]["DAK"] == null ? CommonMethod.InsertJsonConfig("WriteDone", "DAK") : jObject["WriteDone"]["DAK"].Value<bool>();
                 #endregion
                 #endregion
                 file.Close();
                 file.Close();
                 if (Custom_ProjectID != null)
                 if (Custom_ProjectID != null)

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 176 - 425
FactoryTool_CShare/Views/OperationPanel.cs


+ 40 - 40
FactoryTool_CShare/Views/OperationPanel.resx

@@ -1771,13 +1771,13 @@
     <value>107, 444</value>
     <value>107, 444</value>
   </data>
   </data>
   <data name="ACASKeyCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="ACASKeyCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="ACASKeyCount.TabIndex" type="System.Int32, mscorlib">
   <data name="ACASKeyCount.TabIndex" type="System.Int32, mscorlib">
     <value>130</value>
     <value>130</value>
   </data>
   </data>
   <data name="ACASKeyCount.Text" xml:space="preserve">
   <data name="ACASKeyCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;ACASKeyCount.Name" xml:space="preserve">
   <data name="&gt;&gt;ACASKeyCount.Name" xml:space="preserve">
     <value>ACASKeyCount</value>
     <value>ACASKeyCount</value>
@@ -2443,13 +2443,13 @@
     <value>107, 368</value>
     <value>107, 368</value>
   </data>
   </data>
   <data name="YouTubeCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="YouTubeCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="YouTubeCount.TabIndex" type="System.Int32, mscorlib">
   <data name="YouTubeCount.TabIndex" type="System.Int32, mscorlib">
     <value>110</value>
     <value>110</value>
   </data>
   </data>
   <data name="YouTubeCount.Text" xml:space="preserve">
   <data name="YouTubeCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;YouTubeCount.Name" xml:space="preserve">
   <data name="&gt;&gt;YouTubeCount.Name" xml:space="preserve">
     <value>YouTubeCount</value>
     <value>YouTubeCount</value>
@@ -2779,13 +2779,13 @@
     <value>107, 330</value>
     <value>107, 330</value>
   </data>
   </data>
   <data name="HashCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="HashCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="HashCount.TabIndex" type="System.Int32, mscorlib">
   <data name="HashCount.TabIndex" type="System.Int32, mscorlib">
     <value>100</value>
     <value>100</value>
   </data>
   </data>
   <data name="HashCount.Text" xml:space="preserve">
   <data name="HashCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;HashCount.Name" xml:space="preserve">
   <data name="&gt;&gt;HashCount.Name" xml:space="preserve">
     <value>HashCount</value>
     <value>HashCount</value>
@@ -2947,13 +2947,13 @@
     <value>107, 311</value>
     <value>107, 311</value>
   </data>
   </data>
   <data name="PlayreadyCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="PlayreadyCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="PlayreadyCount.TabIndex" type="System.Int32, mscorlib">
   <data name="PlayreadyCount.TabIndex" type="System.Int32, mscorlib">
     <value>95</value>
     <value>95</value>
   </data>
   </data>
   <data name="PlayreadyCount.Text" xml:space="preserve">
   <data name="PlayreadyCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;PlayreadyCount.Name" xml:space="preserve">
   <data name="&gt;&gt;PlayreadyCount.Name" xml:space="preserve">
     <value>PlayreadyCount</value>
     <value>PlayreadyCount</value>
@@ -3115,13 +3115,13 @@
     <value>107, 292</value>
     <value>107, 292</value>
   </data>
   </data>
   <data name="PEKCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="PEKCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="PEKCount.TabIndex" type="System.Int32, mscorlib">
   <data name="PEKCount.TabIndex" type="System.Int32, mscorlib">
     <value>90</value>
     <value>90</value>
   </data>
   </data>
   <data name="PEKCount.Text" xml:space="preserve">
   <data name="PEKCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;PEKCount.Name" xml:space="preserve">
   <data name="&gt;&gt;PEKCount.Name" xml:space="preserve">
     <value>PEKCount</value>
     <value>PEKCount</value>
@@ -3283,13 +3283,13 @@
     <value>107, 273</value>
     <value>107, 273</value>
   </data>
   </data>
   <data name="LEKCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="LEKCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="LEKCount.TabIndex" type="System.Int32, mscorlib">
   <data name="LEKCount.TabIndex" type="System.Int32, mscorlib">
     <value>85</value>
     <value>85</value>
   </data>
   </data>
   <data name="LEKCount.Text" xml:space="preserve">
   <data name="LEKCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;LEKCount.Name" xml:space="preserve">
   <data name="&gt;&gt;LEKCount.Name" xml:space="preserve">
     <value>LEKCount</value>
     <value>LEKCount</value>
@@ -3451,13 +3451,13 @@
     <value>107, 254</value>
     <value>107, 254</value>
   </data>
   </data>
   <data name="BTMacCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="BTMacCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="BTMacCount.TabIndex" type="System.Int32, mscorlib">
   <data name="BTMacCount.TabIndex" type="System.Int32, mscorlib">
     <value>80</value>
     <value>80</value>
   </data>
   </data>
   <data name="BTMacCount.Text" xml:space="preserve">
   <data name="BTMacCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;BTMacCount.Name" xml:space="preserve">
   <data name="&gt;&gt;BTMacCount.Name" xml:space="preserve">
     <value>BTMacCount</value>
     <value>BTMacCount</value>
@@ -3619,13 +3619,13 @@
     <value>107, 235</value>
     <value>107, 235</value>
   </data>
   </data>
   <data name="WifiMacCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="WifiMacCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="WifiMacCount.TabIndex" type="System.Int32, mscorlib">
   <data name="WifiMacCount.TabIndex" type="System.Int32, mscorlib">
     <value>75</value>
     <value>75</value>
   </data>
   </data>
   <data name="WifiMacCount.Text" xml:space="preserve">
   <data name="WifiMacCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;WifiMacCount.Name" xml:space="preserve">
   <data name="&gt;&gt;WifiMacCount.Name" xml:space="preserve">
     <value>WifiMacCount</value>
     <value>WifiMacCount</value>
@@ -3787,13 +3787,13 @@
     <value>107, 216</value>
     <value>107, 216</value>
   </data>
   </data>
   <data name="ECPCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="ECPCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="ECPCount.TabIndex" type="System.Int32, mscorlib">
   <data name="ECPCount.TabIndex" type="System.Int32, mscorlib">
     <value>70</value>
     <value>70</value>
   </data>
   </data>
   <data name="ECPCount.Text" xml:space="preserve">
   <data name="ECPCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;ECPCount.Name" xml:space="preserve">
   <data name="&gt;&gt;ECPCount.Name" xml:space="preserve">
     <value>ECPCount</value>
     <value>ECPCount</value>
@@ -4135,13 +4135,13 @@
     <value>107, 197</value>
     <value>107, 197</value>
   </data>
   </data>
   <data name="FairplayCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="FairplayCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="FairplayCount.TabIndex" type="System.Int32, mscorlib">
   <data name="FairplayCount.TabIndex" type="System.Int32, mscorlib">
     <value>65</value>
     <value>65</value>
   </data>
   </data>
   <data name="FairplayCount.Text" xml:space="preserve">
   <data name="FairplayCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;FairplayCount.Name" xml:space="preserve">
   <data name="&gt;&gt;FairplayCount.Name" xml:space="preserve">
     <value>FairplayCount</value>
     <value>FairplayCount</value>
@@ -4702,13 +4702,13 @@
     <value>107, 178</value>
     <value>107, 178</value>
   </data>
   </data>
   <data name="MGKCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="MGKCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="MGKCount.TabIndex" type="System.Int32, mscorlib">
   <data name="MGKCount.TabIndex" type="System.Int32, mscorlib">
     <value>60</value>
     <value>60</value>
   </data>
   </data>
   <data name="MGKCount.Text" xml:space="preserve">
   <data name="MGKCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;MGKCount.Name" xml:space="preserve">
   <data name="&gt;&gt;MGKCount.Name" xml:space="preserve">
     <value>MGKCount</value>
     <value>MGKCount</value>
@@ -4861,13 +4861,13 @@
     <value>107, 140</value>
     <value>107, 140</value>
   </data>
   </data>
   <data name="CICount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="CICount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="CICount.TabIndex" type="System.Int32, mscorlib">
   <data name="CICount.TabIndex" type="System.Int32, mscorlib">
     <value>29</value>
     <value>29</value>
   </data>
   </data>
   <data name="CICount.Text" xml:space="preserve">
   <data name="CICount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;CICount.Name" xml:space="preserve">
   <data name="&gt;&gt;CICount.Name" xml:space="preserve">
     <value>CICount</value>
     <value>CICount</value>
@@ -4987,13 +4987,13 @@
     <value>107, 121</value>
     <value>107, 121</value>
   </data>
   </data>
   <data name="WideVineCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="WideVineCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="WideVineCount.TabIndex" type="System.Int32, mscorlib">
   <data name="WideVineCount.TabIndex" type="System.Int32, mscorlib">
     <value>28</value>
     <value>28</value>
   </data>
   </data>
   <data name="WideVineCount.Text" xml:space="preserve">
   <data name="WideVineCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;WideVineCount.Name" xml:space="preserve">
   <data name="&gt;&gt;WideVineCount.Name" xml:space="preserve">
     <value>WideVineCount</value>
     <value>WideVineCount</value>
@@ -5113,13 +5113,13 @@
     <value>107, 102</value>
     <value>107, 102</value>
   </data>
   </data>
   <data name="WidiCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="WidiCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="WidiCount.TabIndex" type="System.Int32, mscorlib">
   <data name="WidiCount.TabIndex" type="System.Int32, mscorlib">
     <value>27</value>
     <value>27</value>
   </data>
   </data>
   <data name="WidiCount.Text" xml:space="preserve">
   <data name="WidiCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;WidiCount.Name" xml:space="preserve">
   <data name="&gt;&gt;WidiCount.Name" xml:space="preserve">
     <value>WidiCount</value>
     <value>WidiCount</value>
@@ -5239,13 +5239,13 @@
     <value>107, 83</value>
     <value>107, 83</value>
   </data>
   </data>
   <data name="ESNCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="ESNCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="ESNCount.TabIndex" type="System.Int32, mscorlib">
   <data name="ESNCount.TabIndex" type="System.Int32, mscorlib">
     <value>26</value>
     <value>26</value>
   </data>
   </data>
   <data name="ESNCount.Text" xml:space="preserve">
   <data name="ESNCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;ESNCount.Name" xml:space="preserve">
   <data name="&gt;&gt;ESNCount.Name" xml:space="preserve">
     <value>ESNCount</value>
     <value>ESNCount</value>
@@ -5335,13 +5335,13 @@
     <value>107, 159</value>
     <value>107, 159</value>
   </data>
   </data>
   <data name="AttestationCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="AttestationCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="AttestationCount.TabIndex" type="System.Int32, mscorlib">
   <data name="AttestationCount.TabIndex" type="System.Int32, mscorlib">
     <value>55</value>
     <value>55</value>
   </data>
   </data>
   <data name="AttestationCount.Text" xml:space="preserve">
   <data name="AttestationCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;AttestationCount.Name" xml:space="preserve">
   <data name="&gt;&gt;AttestationCount.Name" xml:space="preserve">
     <value>AttestationCount</value>
     <value>AttestationCount</value>
@@ -5365,13 +5365,13 @@
     <value>107, 64</value>
     <value>107, 64</value>
   </data>
   </data>
   <data name="HDCP22Count.Size" type="System.Drawing.Size, System.Drawing">
   <data name="HDCP22Count.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="HDCP22Count.TabIndex" type="System.Int32, mscorlib">
   <data name="HDCP22Count.TabIndex" type="System.Int32, mscorlib">
     <value>25</value>
     <value>25</value>
   </data>
   </data>
   <data name="HDCP22Count.Text" xml:space="preserve">
   <data name="HDCP22Count.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;HDCP22Count.Name" xml:space="preserve">
   <data name="&gt;&gt;HDCP22Count.Name" xml:space="preserve">
     <value>HDCP22Count</value>
     <value>HDCP22Count</value>
@@ -5395,13 +5395,13 @@
     <value>107, 7</value>
     <value>107, 7</value>
   </data>
   </data>
   <data name="DIDCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="DIDCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="DIDCount.TabIndex" type="System.Int32, mscorlib">
   <data name="DIDCount.TabIndex" type="System.Int32, mscorlib">
     <value>22</value>
     <value>22</value>
   </data>
   </data>
   <data name="DIDCount.Text" xml:space="preserve">
   <data name="DIDCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;DIDCount.Name" xml:space="preserve">
   <data name="&gt;&gt;DIDCount.Name" xml:space="preserve">
     <value>DIDCount</value>
     <value>DIDCount</value>
@@ -5491,13 +5491,13 @@
     <value>107, 45</value>
     <value>107, 45</value>
   </data>
   </data>
   <data name="HDCPCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="HDCPCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="HDCPCount.TabIndex" type="System.Int32, mscorlib">
   <data name="HDCPCount.TabIndex" type="System.Int32, mscorlib">
     <value>24</value>
     <value>24</value>
   </data>
   </data>
   <data name="HDCPCount.Text" xml:space="preserve">
   <data name="HDCPCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;HDCPCount.Name" xml:space="preserve">
   <data name="&gt;&gt;HDCPCount.Name" xml:space="preserve">
     <value>HDCPCount</value>
     <value>HDCPCount</value>
@@ -5521,13 +5521,13 @@
     <value>107, 26</value>
     <value>107, 26</value>
   </data>
   </data>
   <data name="MacCount.Size" type="System.Drawing.Size, System.Drawing">
   <data name="MacCount.Size" type="System.Drawing.Size, System.Drawing">
-    <value>15, 17</value>
+    <value>19, 17</value>
   </data>
   </data>
   <data name="MacCount.TabIndex" type="System.Int32, mscorlib">
   <data name="MacCount.TabIndex" type="System.Int32, mscorlib">
     <value>23</value>
     <value>23</value>
   </data>
   </data>
   <data name="MacCount.Text" xml:space="preserve">
   <data name="MacCount.Text" xml:space="preserve">
-    <value>0</value>
+    <value></value>
   </data>
   </data>
   <data name="&gt;&gt;MacCount.Name" xml:space="preserve">
   <data name="&gt;&gt;MacCount.Name" xml:space="preserve">
     <value>MacCount</value>
     <value>MacCount</value>

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio