Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
                }
            }
        }
Ejemplo n.º 3
0
        /// <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);
            }
        }
Ejemplo n.º 4
0
 public void Log(string logname, string Topic, string msg)
 {
     LogableClass.ToLog(LogName, Topic, msg);
 }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
 public void ClearAllData()
 {
     LogableClass.ToLog("清空指令", "清空所有数据!");
 }
Ejemplo n.º 7
0
        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();
        }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
        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));
            }
        }
Ejemplo n.º 10
0
        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));
            }
        }
Ejemplo n.º 11
0
 public static void SetRemoteInst(T obj)
 {
     LogableClass.ToLog("填充远程值", obj.ToString());
     _RemoteInst = obj;
 }
Ejemplo n.º 12
0
 public void Test(string strtest)
 {
     LogableClass.ToLog("远程日志", "远程调用", strtest);
 }
Ejemplo n.º 13
0
 public void Test(string strTest)
 {
     LogableClass.ToLog("服务端日志", "测试", strTest);
 }
Ejemplo n.º 14
0
 public void Log(string topic, string msg)
 {
     LogableClass.ToLog(this.ServiceName, topic, msg);
 }