static void Main1() { //splitFile("share", "function(", '}'); //return; LogableClass.ToLog("初始化服务器全局设置", "开始"); InitSystem <TimeSerialData>(); LogableClass.ToLog("启动通道", "开始"); new CommuniteClass().StartIPCServer(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); GlobalObj gb = new GlobalObj(); ////gb.w = new WindAPI(); ////gb.w.start(); ReceiveService <TimeSerialData> rc = new ReceiveService <TimeSerialData>(); rc.setGlobalClass(AllServiceConfig.gc); rc.CalcProcess = new CalcService <TimeSerialData>(); rc.Start(); Form2 frm = new Form2(gb); Application.Run(frm); }
public static object XmlDeserialize(string s, Encoding encoding, Type tp) { //s = s.Substring(1, s.Length - 1); s = "<" + s.Substring(s.IndexOf('<') + 1); if (string.IsNullOrEmpty(s)) { throw new ArgumentNullException("s"); } if (encoding == null) { throw new ArgumentNullException("encoding"); } XmlDocument xmldoc = new XmlDocument(); try { xmldoc.LoadXml(s); if (xmldoc == null) { throw new Exception(""); } } catch (Exception ce) { LogableClass.ToLog("载入Xml错误!", ce.Message); } XmlSerializer mySerializer = new XmlSerializer(tp); using (MemoryStream ms = new MemoryStream(encoding.GetBytes(s))) { using (StreamReader sr = new StreamReader(ms, encoding)) { return(mySerializer.Deserialize(sr)); } } }
/// <summary> /// 应用程序的主入口点。 /// </summary> static void Main2() { splitFile("share", "function", '}'); return; try { ////DateTime dt = new DateTime(1991,4,3,12,0,1,12); ////DateTime bt = DateTime.Parse("1990-01-01"); ////long val = (long)MongoDateTime.Stamp(dt); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //ServiceBase[] ServicesToRun; //只有接收数据是默认启动,计算服务由接收数据触发 //ServicesToRun = new ServiceBase[] //{ // rs,sd //}; LogableClass.ToLog("初始化服务器全局设置", "开始"); InitSystem <TimeSerialData>(); LogableClass.ToLog("启动通道", "开始"); new CommuniteClass().StartIPCServer(); //ServiceBase.Run(ServicesToRun); GlobalObj gb = new GlobalObj(); //gb.w = new WindAPI(); //gb.w.start(); //new ReceiveService().Start(); Form2 frm = new Form2(gb); Application.Run(frm); } catch (Exception e) { LogableClass.ToLog("初始化服务失败", e.StackTrace); } }
public void Log(string logname, string Topic, string msg) { LogableClass.ToLog(LogName, Topic, msg); }
void rePaintChart(int Len) { try { Chart chrt = this.chart_ForGuide; ////chrt.Parent = this.chart_ForGuide.Parent; ////chrt.Left = this.chart_ForGuide.Left; ////chrt.Top = this.chart_ForGuide.Top; ////chrt.Dock = this.chart_ForGuide.Dock; Dictionary <string, AssetUnitClass> assetUnits = UseSetting.AllAssetUnits; //System.Threading.Thread.Sleep(10 * 1000); lock (assetUnits) { ////////////string strExpect = dt.Rows[dt.Rows.Count - 1]["Expect"].ToString(); ////////////Int64 MinExpect = Int64.Parse(strExpect) - 180; ////////////string sql = string.Format("Expect>={0}", MinExpect); ////////////DataView dv_stddev = new DataView(dt); ////////////dv_stddev.RowFilter = sql; bool Changed = false; List <string> keys = assetUnits.Keys.ToList(); List <AssetUnitClass> vals = assetUnits.Values.ToList(); //foreach (string id in assetUnits.Keys) for (int ai = 0; ai < keys.Count; ai++) { string id = keys[ai]; DataTable dt = vals[ai].SummaryLine(); //MessageBox.Show(string.Format("资产单元{0}记录数{1}条。", assetUnits[id].UnitName, dt.Rows.Count)); if (this.AssetTimeSummary.ContainsKey(id) == false || (this.AssetTimeSummary.ContainsKey(id) && dt.Rows.Count != this.AssetTimeSummary[id])) { if (!this.AssetTimeSummary.ContainsKey(id)) { this.AssetTimeSummary.Add(id, 0); } this.AssetTimeSummary[id] = dt.Rows.Count; Changed = true; //saveAssetLines(id, dt);//保存 } vals[ai].SaveDataToFile(); } //if (!Changed)//没有任何改变,不刷新 // return; int i = 0; if (chrt.Series.Count < vals.Count - 1) { chrt.Series.Clear(); // foreach (string strName in assetUnits.Keys) for (int ai = 0; ai < keys.Count; ai++) { string strName = keys[ai]; Series sr = new Series(vals[ai].UnitName); sr.ChartType = SeriesChartType.Line; chrt.Series.Add(sr); i++; } //chrt.GetToolTipText += new EventHandler<ToolTipEventArgs>(chart_ForSystemStdDev_GetToolTipText); } i = 0; //foreach (string strName in assetUnits.Keys) for (int ai = 0; ai < keys.Count; ai++) { //System.Threading.Thread.Sleep(5 * 1000); string strName = keys[ai]; DataTable dt = vals[ai].SummaryLine(); List <DataRow> drs = dt.Select("id>0", "id desc").Take <DataRow>(Len).ToList(); DataTable DispDt = dt.Clone(); for (int di = 0; di < drs.Count; di++) { DispDt.Rows.Add(drs[di].ItemArray); } DataView dv = new DataView(DispDt); dv.Sort = "id asc"; chrt.Series[i].Points.DataBindY(dv, "val"); i++; } chrt.Show(); //try //{ //this.chart_ForGuide = chrt; //this.chart_ForGuide.Show(); ////if (vals != null) ////{ //// this.chart_ForGuide.Invoke(new setChartCallback(setChart), chrt); ////} //} //catch(Exception ce) //{ //MessageBox.Show(ce.Message); //} } //this.chart_ForSystemStdDev.DataSource = dv_stddev; //this.chart_ForSystemStdDev.Series[0].Points.DataBindXY(dv_stddev, "Expect", dv_stddev, "StdDev"); //this.chart_ForSystemStdDev.Series[1].Points.DataBindXY(dv_stddev, "Expect", dv_stddev, "StdMa20"); //this.chart_ForSystemStdDev.Series[2].Points.DataBindXY(dv_stddev, "Expect", dv_stddev, "StdMa5"); //////cjrt.ChartAreas[0].AxisY.Maximum = 0.6; //////this.chart_ForSystemStdDev.ChartAreas[0].AxisY.Minimum = 0.1; //////this.chart_ForSystemStdDev.Show(); } catch (Exception e) { LogableClass.ToLog("监控", e.Message, e.StackTrace); } }
public void ClearAllData() { LogableClass.ToLog("清空指令", "清空所有数据!"); }
static void Main(string[] args) { VerNo = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); System.IO.Directory.SetCurrentDirectory(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)); //Xpcom.Initialize("Firefox"); gc = new GlobalClass();//加载根目录config if (!gc.loadSucc) { return; } ////GlobalClass sgc = new GlobalClass(string.Format("config\\",gc.ForWeb)); ////if(sgc.loadSucc)//如果有子目录 ////{ //// gc = sgc; ////} System.Drawing.Image img = null; //string retver = VerPwdClass.getString(img); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (args != null && args.Length >= 2) { strName = args[0]; strPassword = args[1]; AutoLogin = true; } Form1 frm = null; wxl = new WXLogClass("客户端", gc.WXLogNoticeUser, string.Format(gc.WXLogUrl, gc.WXSVRHost));//指定默认登录用户,为捕捉第一次产生错误用。 //ContinueRun: try { //var programDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); //Gecko.Xpcom.Initialize(Path.Combine(programDirectory, "xulrunner")); frm = new Form1(strName, strPassword, AutoLogin); string msg = wxl.Log(string.Format("{0}", "客户端启动!")); Application.Run(frm); wxl.Log(string.Format("{0}", "客户端退出!")); } catch (Exception ce) { wxl = new WXLogClass(User, gc.WXLogNoticeUser, gc.WXLogUrl); LogableClass.ToLog("错误", "退出界面:" + ce.Message, ce.StackTrace); wxl.Log("错误退出交易终端,请立即手动启动终端!", string.Format("{0}:退出界面!", Title), string.Format("详细原因[{0}]:{1}", ce.Message, ce.StackTrace)); ////AutoLogin = true; ////if(frm != null) //// GC.SuppressFinalize(frm); ////frm = null; //goto ContinueRun; } finally { GlobalClass.SetConfig(gc.ForWeb); if (frm != null) { GC.SuppressFinalize(frm); } } //Application.Exit(); }
private static void Client_ReceiveMsg(object sender, TEventArgs <List <AddMsg> > e) { try { ClientValid = true; LogableClass.ToLog("接收到消息条数:", e.Result.Count.ToString()); foreach (var item in e.Result) { switch (item.MsgType) { case MsgType.MM_DATA_TEXT: if (contactDict.Keys.Contains(item.FromUserName)) { if (item.FromUserName.StartsWith("@@")) { //群消息,内容格式为[群内username];<br/>[content],例如Content=@ffda8da3471b87ff22a6a542c5581a6efd1b883698db082e529e8e877bef79b6:<br/>哈哈 string[] content = item.Content.Split(new string[] { ":<br/>" }, StringSplitOptions.RemoveEmptyEntries); Console.WriteLine(contactDict[item.FromUserName].NickName + ":" + contactDict[item.FromUserName].MemberDict[content[0]].NickName + ":" + content[1]); } else { Console.WriteLine(contactDict[item.FromUserName].NickName + ":" + item.Content); } } else { //不包含(一般为群)则需要我们主动拉取信息 client.GetBatchGetContactAsync(item.FromUserName); } break; case MsgType.MM_DATA_HTML: break; case MsgType.MM_DATA_IMG: break; case MsgType.MM_DATA_PRIVATEMSG_TEXT: break; case MsgType.MM_DATA_PRIVATEMSG_HTML: break; case MsgType.MM_DATA_PRIVATEMSG_IMG: break; case MsgType.MM_DATA_VOICEMSG: break; case MsgType.MM_DATA_PUSHMAIL: break; case MsgType.MM_DATA_QMSG: break; case MsgType.MM_DATA_VERIFYMSG: //自动加好友,日限额80个左右,请勿超限额多次调用,有封号风险 //client.VerifyUser(item.RecommendInfo); break; case MsgType.MM_DATA_PUSHSYSTEMMSG: break; case MsgType.MM_DATA_QQLIXIANMSG_IMG: break; case MsgType.MM_DATA_POSSIBLEFRIEND_MSG: break; case MsgType.MM_DATA_SHARECARD: break; case MsgType.MM_DATA_VIDEO: break; case MsgType.MM_DATA_VIDEO_IPHONE_EXPORT: break; case MsgType.MM_DATA_EMOJI: break; case MsgType.MM_DATA_LOCATION: break; case MsgType.MM_DATA_APPMSG: { } break; case MsgType.MM_DATA_VOIPMSG: break; case MsgType.MM_DATA_STATUSNOTIFY: switch (item.StatusNotifyCode) { case StatusNotifyCode.StatusNotifyCode_READED: break; case StatusNotifyCode.StatusNotifyCode_ENTER_SESSION: break; case StatusNotifyCode.StatusNotifyCode_INITED: break; case StatusNotifyCode.StatusNotifyCode_SYNC_CONV: //初始化的时候第一次sync会返回最近聊天的列表 client.GetBatchGetContactAsync(item.StatusNotifyUserName); break; case StatusNotifyCode.StatusNotifyCode_QUIT_SESSION: break; default: break; } break; case MsgType.MM_DATA_VOIPNOTIFY: break; case MsgType.MM_DATA_VOIPINVITE: break; case MsgType.MM_DATA_MICROVIDEO: break; case MsgType.MM_DATA_SYSNOTICE: break; case MsgType.MM_DATA_SYS: //系统消息提示,例如完成好友验证通过,建群等等,提示消息“以已经通过了***的朋友验证请求,现在可以开始聊天了”、“加入了群聊” //不在字典,说明是新增,我们就主动拉取加入联系人字典 if (!contactDict.Keys.Contains(item.FromUserName)) { client.GetBatchGetContactAsync(item.FromUserName); } break; case MsgType.MM_DATA_RECALLED: break; default: break; } } } catch (Exception err) { Console.WriteLine("异常:" + err.Message); } }
private static void Client_GetContactComplete(object sender, TEventArgs <List <Contact> > e) { try { LogableClass.ToLog("获取联系人列表(包括公众号,联系人)", "总数:" + e.Result.Count); Console.WriteLine("获取联系人列表(包括公众号,联系人),总数:" + e.Result.Count); foreach (var item in e.Result) { if (!contactDict.Keys.Contains(item.UserName)) { if (item.UserName.StartsWith("@@")) { if (item.MemberList.Count == 0) { string msg = string.Format("{0}获取到的群成员数竟然是0", item.NickName); client.GetBatchGetContactAsync(item.UserName);//如果成员数是0,重新获取 continue; } client.GetBatchGetContactAsync(string.Join(",", item.MemberList.Select(a => a.UserName)), item.UserName); } contactDict.Add(item.UserName, item); } else { contactDict[item.UserName] = item; } //联系人列表中包含联系人,公众号,可以通过参数做区分 if (item.VerifyFlag != 0) { //个人号 } else { //公众号 } } //如果获取完成 if (client.IsFinishGetContactList) { } if (DisplayByFrm) { frm.RefreshContact(sender, e); } } catch (Exception ce) { MessageBox.Show(string.Format("{0}:{1}", ce.Message, ce.StackTrace)); } }
public string Init() { try { ////Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); ////AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; LogableClass.ToLog("实例化接口", "开始"); if (client == null) { client = new Client(); } LogableClass.ToLog("启动二维码", "开始"); if (DisplayByFrm) { qrForm = new QrCodeForm(); } LogableClass.ToLog("指定响应事件", "开始"); //获取登陆之后记录的cookie,实现推送手机端登陆,取代扫码 //若不需要,注释掉以下代码即可 client.ExceptionCatched += Client_ExceptionCatched;; client.GetLoginQrCodeComplete += Client_GetLoginQrCodeComplete;; client.CheckScanComplete += Client_CheckScanComplete;; client.LoginComplete += Client_LoginComplete; client.DelContactListComplete += Client_DelContactListComplete;; client.ModContactListComplete += Client_ModContactListComplete; client.GetContactComplete += Client_GetContactComplete;; client.BatchGetContactComplete += Client_BatchGetContactComplete;; client.MPSubscribeMsgListComplete += Client_MPSubscribeMsgListComplete;; client.LogoutComplete += Client_LogoutComplete;; if (DisplayByFrm) { frm = new frm_MainWin(client); client.ReceiveMsg += RefreshMsg; this.MsgProcessCompleted += frm.RefreshMsg; } else { client.ReceiveMsg += Client_ReceiveMsg; } //client.GetContactComplete += frm.RefreshContact; Console.WriteLine("小助手启动"); LogableClass.ToLog("小助手启动", "开始"); //获取群成员详情,需要我们主动调用,一般用不到,因为群里已经包含Member基本信息。 //Contact chatRoom = contactDict["群UserName"]; //string listStr = string.Join(",", chatRoom.MemberList); //client.GetBatchGetContactAsync(listStr, chatRoom.UserName); return(""); } catch (Exception ce) { LogableClass.ToLog("错误", "初始化接口失败!", string.Format("{0}:{1}", ce.Message, ce.StackTrace)); return(string.Format("{0}:{1}", ce.Message, ce.StackTrace)); } }
public static void SetRemoteInst(T obj) { LogableClass.ToLog("填充远程值", obj.ToString()); _RemoteInst = obj; }
public void Test(string strtest) { LogableClass.ToLog("远程日志", "远程调用", strtest); }
public void Test(string strTest) { LogableClass.ToLog("服务端日志", "测试", strTest); }
public void Log(string topic, string msg) { LogableClass.ToLog(this.ServiceName, topic, msg); }