Beispiel #1
0
        /// <summary>
        /// 在指定范围内寻找图片
        /// </summary>
        /// <param name="dmGuid"></param>
        /// <param name="key">资源键值</param>
        /// <param name="rect"></param>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <returns></returns>
        public bool FindPic(string dmGuid, object key, WxRect rect, out int x, out int y)
        {
            if (!m_picResources.ContainsKey(key))
            {
                x = -1;
                y = -1;
                WxLog.Debug($"DMService.FindPic No Pic Resource With Key <{key}>");
                return(false);
            }

            var dm       = GetDM(dmGuid);
            var resource = m_picResources[key];
            var result   = dm.FindPicMem(rect.Left, rect.Top, rect.Right, rect.Bottom, resource.Info, "202020", 0.8, 0, out var xx, out var yy);

            if (result > -1)
            {
                x = (int)xx;
                y = (int)yy;
                return(true);
            }

            x = -1;
            y = -1;
            return(false);
        }
Beispiel #2
0
        /// <summary>
        /// 为当前错误截图
        /// </summary>
        /// <param name="message"></param>
        private void CaptureError(string message)
        {
            if (string.IsNullOrEmpty(DMGuid))
            {
                return;
            }

            var fileName = $"Error{DateTime.Now:yyyyMMddHHmmss}_{message}.bmp";

            if (!Directory.Exists("error"))
            {
                Directory.CreateDirectory("error");
            }

            var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "error", fileName);

            try
            {
                DMService.Instance.Capture(DMGuid, WlyUtilityBiz.GameWndRect, filePath);
            }
            catch (Exception ex)
            {
                WxLog.Error($"WlyEntity.CaptureError <{ex}>");
            }
        }
Beispiel #3
0
        /// <summary>
        /// 获取军令数量
        /// </summary>
        /// <param name="dmGuid"></param>
        /// <returns></returns>
        public static int GetPoint(string dmGuid)
        {
            // 首先跳转到主界面
            WlyViewMgr.GoTo(dmGuid, WlyViewType.场景_主界面);
            var pointRect = new WxRect(119, 106, 163, 123);
            var words     = string.Empty;
            var wait      = FlowLogicHelper.RepeatRun(() =>
            {
                words = DMService.Instance.GetWords(dmGuid, pointRect, "f3f3da-202020");
                return(!string.IsNullOrEmpty(words));
            }, TimeSpan.FromSeconds(20));

            if (!wait)
            {
                throw new InvalidOperationException("无法获取军令信息");
            }

            var result = int.TryParse(words.Split('/')[0], out var point);

            if (!result)
            {
                WxLog.Debug($"WlyUtilityBiz.GetPoint  <{words}>");
                return(0);
            }

            return(point);
        }
Beispiel #4
0
        /// <summary>
        /// 通过指定的属性注册处理器
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="attributeType"></param>
        public void RegisterHandlersByAttribute(object obj, Type attributeType)
        {
            // 初始化注册函数
            var register = GetType().GetMethod(nameof(RegisterHandler), BindingFlags.Public | BindingFlags.Instance);

            if (register == null)
            {
                throw new InvalidOperationException("Method RegisterHandler Not Found!");
            }

            // 反射加载所有的消息处理器
            var methods = obj.GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);

            foreach (var method in methods)
            {
                try
                {
                    var attribute = method.GetCustomAttribute(attributeType);
                    if (attribute == null)
                    {
                        continue;
                    }

                    var para    = method.GetParameters().First().ParameterType;
                    var handler = typeof(Action <>).MakeGenericType(para);
                    register.MakeGenericMethod(para).Invoke(this, new object[] { method.CreateDelegate(handler, obj) });
                }
                catch (Exception ex)
                {
                    WxLog.Error($"WxDispatcher.RegisterHandlersByAttribute Error <{ex}>");
                }
            }
        }
Beispiel #5
0
        public void Execute(object parameter)
        {
            if (null == m_execute)
            {
                return;
            }

            if (!CanExecute(parameter))
            {
                return;
            }

            if (!m_isAsync)
            {
                m_execute(parameter);
                return;
            }

            Task.Run(() =>
            {
                try
                {
                    m_execute(parameter);
                }
                catch (Exception ex)
                {
                    WxLog.Debug($"WxCommand.Execute {ex}");
                }
            });
        }
        /// <summary>
        /// 执行任务
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        protected override WlyTaskInfo InternalRun(WlyEntity entity)
        {
            var sub    = (SubEntity)entity;
            var dmGuid = entity.DMGuid;

            WlyViewMgr.GoTo(dmGuid, WlyViewType.场景_主界面);

            // 获取名称
            var name = DMService.Instance.GetWords(dmGuid, new WxRect(54, 0, 134, 24), "eae7d0-000000");

            if (!name.Contains("海潮"))
            {
                WxLog.Error($"任务_名称检测.InternalRun Invalid Name <{name}> Account <{entity.Account}> Psw <{entity.Password}> UID<{entity.AccountInfo.UID}>");
                return(new WlyTaskInfo(ID)
                {
                    NextRunTime = DateTime.Now.AddDays(7)
                });
            }

            try
            {
                sub.Info.Name  = name;
                sub.Info.Index = int.Parse(name.Substring(2));
                entity.Stop();
                return(new WlyTaskInfo(ID, true));
            }
            catch (Exception ex)
            {
                WxLog.Error($"任务_名称检测.InternalRun Name<{name}> Error <{ex}>");
                return(new WlyTaskInfo(ID, DateTime.Now.AddDays(7)));
            }
        }
Beispiel #7
0
        public static WlySystemInfo Load(string file)
        {
            WlySystemInfo info = null;

            try
            {
                if (File.Exists(file))
                {
                    info = JsonHelper.LoadFromXmlFile <WlySystemInfo>(file);
                    info.m_configFile = file;
                }
                else
                {
                    info = new WlySystemInfo(file);
                }
            }
            catch (Exception ex)
            {
                WxLog.Error($"WlySystemInfo.Load Error <{ex}>");
            }

            var gameInterval = (int)(DateTime.Now - _gameStart).TotalDays;

            info.m_gameTime = $"{180 + (gameInterval / 4)}年 {_seasons[gameInterval % 4]}";
            return(info);
        }
Beispiel #8
0
        /// <summary>
        /// 使用 sql 语句与参数查询数据库
        /// </summary>
        /// <param name="sqlString"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override DataSet Query(string sqlString, IEnumerable <object> parameters)
        {
            try
            {
                // 构建命令
                MySqlCommand cmd = new MySqlCommand {
                    CommandText = sqlString, Connection = m_connection
                };
                if (parameters != null)
                {
                    foreach (var value in parameters)
                    {
                        cmd.Parameters.Add(new MySqlParameter {
                            Value = value
                        });
                    }
                }

                // 获取数据
                MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
                var dataSet = new DataSet();
                lock (m_executeLocker)
                {
                    adapter.Fill(dataSet);
                }
                return(dataSet);
            }
            catch (Exception ex)
            {
                WxLog.Debug($"MySqlDatabase.Query \n\tsql<{sqlString}>\n\tex<{ex}>");
                return(null);
            }
        }
Beispiel #9
0
        /// <summary>
        /// 执行 sql 语句
        /// </summary>
        /// <param name="sqlString"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override bool Execute(string sqlString, IEnumerable <object> parameters)
        {
            try
            {
                MySqlCommand cmd = new MySqlCommand {
                    CommandText = sqlString, Connection = m_connection
                };
                if (parameters != null)
                {
                    foreach (var value in parameters)
                    {
                        cmd.Parameters.Add(new MySqlParameter {
                            Value = value
                        });
                    }
                }

                lock (m_executeLocker)
                {
                    return(cmd.ExecuteNonQuery() == 0);
                }
            }
            catch (Exception ex)
            {
                WxLog.Error($"MySqlDatabase.Execute \n\tsqlString<{sqlString}>\n\tex<{ex}>");
                return(false);
            }
        }
Beispiel #10
0
        /// <summary>
        /// 创建账号,写入数据库
        /// </summary>
        /// <param name="user"></param>
        /// <param name="psw"></param>
        private void CreateAccount(string user, string psw)
        {
            var sql    = "insert into AccountInfo(UID, Account, Psw, LastLoginTime) values (?, ?, ?, ?);";
            var uid    = MathHelper.GetNewGuid();
            var result = m_mySqlDatabase.Execute(sql, new object[] { uid, user, psw, DateTime.MinValue });

            WxLog.Debug($"RegEntity.CreateAccount <{user} | {psw}> Result<{result}>");
        }
Beispiel #11
0
        public void Start()
        {
            m_accountInfo = MainAccountInfo.LoadAccount(m_mainFile);
            if (!File.Exists(m_mainFile))
            {
                m_accountInfo.Save();
            }

            m_mainEntity = new MainEntity(m_accountInfo);
            MainTaskMgr.Instance.InitEntityTasks(m_mainEntity);
            m_mainEntity.DescriptionChanged += MainEntityOnDescriptionChanged;
            m_mainEntity.Start();

            foreach (var t in WxHelper.GetEnumValues <WlySwitchType>())
            {
                var info    = m_accountInfo.GetSwitchInfo(t);
                var wrapper = new WlyTaskSwitchWrapper(info);
                wrapper.Changed += WrapperOnChanged;
                Switches.Add(wrapper);
            }

            // 主账号监测
            m_cancellationTokenSource = new CancellationTokenSource();
            var token = m_cancellationTokenSource.Token;

            Task.Run(() =>
            {
                while (!token.IsCancellationRequested)
                {
                    try
                    {
                        Thread.Sleep(TimeSpan.FromMinutes(1));
                        if (!m_mainEntity.Run)
                        {
                            WxLog.Debug($"WlyAutoVM.Start 对主账号进行重置 <{DateTime.Now}>");
                            m_mainEntity.Stop();
                            m_mainEntity.DescriptionChanged -= MainEntityOnDescriptionChanged;
                            MainEntity = new MainEntity(m_accountInfo);
                            MainTaskMgr.Instance.InitEntityTasks(m_mainEntity);
                            m_mainEntity.DescriptionChanged += MainEntityOnDescriptionChanged;
                            m_mainEntity.Start();
                        }
                    }
                    catch (Exception ex)
                    {
                        WxLog.Error($"WlyAutoVM.Start Error <{ex}>");
                    }
                }

                WxLog.Debug($"WlyAutoVM.Start Stop On <{ResetTime}>");
            }, token);

            //StartSubCmdExecute(this);
        }
        /// <summary>
        /// 根据数据库类型创建对应数据库实体
        /// </summary>
        /// <param name="type">数据库类型</param>
        /// <returns></returns>
        /// <exception cref="WxException">不支持的数据库类型.</exception>
        public IWxDatabase CreateDatabase(WxDatabaseType type)
        {
            WxLog.Debug($"WxDatabasePlugin.CreateDatabase \t<{type}>");
            switch (type)
            {
            case WxDatabaseType.MySql:
                return(new MySqlDatabase());

            default:
                return(null);
            }
        }
Beispiel #13
0
        static ResourceFactory()
        {
            var assembly = typeof(ResourceFactory).Assembly;

            foreach (var res in assembly.GetManifestResourceNames())
            {
                WxLog.Debug($"ResourceFactory.ResourceFactory Res <{res}>");
                var stream   = assembly.GetManifestResourceStream(res);
                var resource = new BizResouce(res, stream);
                m_dict.TryAdd(resource.Name, resource);
            }
        }
Beispiel #14
0
        /// <summary>
        /// 开始运行脚本
        /// </summary>
        private void StartGame()
        {
            if (m_process != null)
            {
                m_process.Close();
                m_process.Kill();
                m_process = null;
            }

            m_process = Process.Start(new ProcessStartInfo
            {
                UseShellExecute = false,
                FileName        = m_programPath
            });

            var result = Login();

            if (!result)
            {
                // 启动失败,等待重启
                State = RunningState.Stopped;
                return;
            }

            // 设置开始时间
            StartTime = DateTime.Now;

            // 获取新窗口句柄
            m_dmsoft = DMFactory.Instance.CreateDMSoft();
            while (true)
            {
                var handle = m_dmsoft.EnumWindowByProcessId(m_process.Id, "", "MacromediaFlashPlayerActiveX", 2);
                WxLog.Debug($"AppEntity.StartGame Handl <{handle}>");
                var hs = handle.Split(',');
                foreach (var h in hs)
                {
                    try
                    {
                        var it = int.Parse(h);
                        m_dmsoft.BindWindow(it, "gdi", "windows", "windows", 101);
                        var title = m_dmsoft.GetWindowClass(it);
                        WxLog.Debug($"AppEntity.StartGame {title}");
                    }
                    catch
                    {
                    }
                }

                Thread.Sleep(10000);
            }
        }
Beispiel #15
0
        public virtual void Init(ITestOutputHelper output)
        {
            lock (m_locker)
            {
                if (m_isInit)
                {
                    return;
                }

                m_isInit = true;

                WxLog.RegisterOutput(log => { output.WriteLine(log); });
                WxFrameworkService.Instance.Init();
            }
        }
Beispiel #16
0
        /// <summary>
        /// 构建大漠插件实体
        /// </summary>
        /// <returns></returns>
        public dmsoft CreateDMSoft()
        {
            while (true)
            {
                var dm     = new dmsoft();
                var result = dm.Reg(m_code, "");
                if (result == 1)
                {
                    return(dm);
                }

                WxLog.Debug($"DMFactory.CreateDMSoft Result <{result}> ReCreate");
                Thread.Sleep(1000);
            }
        }
Beispiel #17
0
        /// <summary>
        /// 关闭聊天窗
        /// </summary>
        private void CloseChat()
        {
            while (true)
            {
                var result = DMFactory.Instance.FindPic(m_dm, ResourceEnum.CloseChat, out var x, out var y);
                if (result)
                {
                    WxLog.Debug($"MainEntity.CloseChat Location:{x},{y}");
                    m_dm.MoveTo(x + 5, y + 5);
                    m_dm.LeftClick();
                    Thread.Sleep(100);
                }

                WxLog.Debug($"MainEntity.CloseChat Finish");
                break;
            }
        }
        /// <summary>将源值转换为绑定目标的值。 数据绑定引擎在将该值从源绑定传播到绑定目标时会调用此方法。</summary>
        /// <param name="values">
        /// <see cref="T:System.Windows.Data.MultiBinding" /> 中的源绑定生成的值的数组。 值 <see cref="F:System.Windows.DependencyProperty.UnsetValue" /> 指示源绑定没有可供转换的值。</param>
        /// <param name="targetType">绑定目标属性的类型。</param>
        /// <param name="parameter">要使用的转换器参数。</param>
        /// <param name="culture">要用在转换器中的区域性。</param>
        /// <returns>转换后的值。如果该方法返回 null,则会使用有效的 null 值。<see cref="T:System.Windows.DependencyProperty" />。<see cref="F:System.Windows.DependencyProperty.UnsetValue" /> 的返回值指示转换器没有生成值,并且绑定将使用 <see cref="P:System.Windows.Data.BindingBase.FallbackValue" />(如果可用),或者将使用默认值。<see cref="T:System.Windows.Data.Binding" /><see cref="F:System.Windows.Data.Binding.DoNothing" /> 的返回值指示绑定不会传输该值,或不使用 <see cref="P:System.Windows.Data.BindingBase.FallbackValue" /> 或默认值。</returns>
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            try
            {
                DateTime current = (DateTime)values[0];
                DateTime target  = (DateTime)values[1];
                if (target < current)
                {
                    return("可执行");
                }

                return($"{target - current:hh\\:mm\\:ss}");
            }
            catch (Exception ex)
            {
                WxLog.Error($"TimeToLastConverter.Convert Error <{ex}>");
                return("可执行");
            }
        }
Beispiel #19
0
        /// <summary>
        /// 连接数据库
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <param name="ip"></param>
        /// <param name="dbname"></param>
        /// <returns></returns>
        public override bool Connect(string username, string password, string ip, string dbname)
        {
            try
            {
                m_connectionString = $"server={ip};User Id={username};password={password};Database={dbname}";
                m_connection       = new MySqlConnection(m_connectionString);
                m_connection.Open();
                WxLog.Debug($"MySqlDatabase.Connect \t<{m_connectionString}>");

                // 初始化命令队列线程
                var cmdQueueThread = new Thread(HandleCmdQueue);
                cmdQueueThread.Start();
                WxLog.Debug("MySqlDatabase.Connect CmdQueueThead Start!");
                return(true);
            }
            catch (Exception ex)
            {
                WxLog.Debug($"MySqlDatabase.Connect \t<{ex}>");
                return(false);
            }
        }
Beispiel #20
0
        protected override void InternalBackupWorkThread()
        {
            // 小号无其他任务则直接停止
            WxLog.Debug($"SubEntity.InternalBackupWorkThread  No More Tasks <{Account}>");
            var time = WlyUtilityBiz.GetRefreshTime();

            foreach (var runner in TaskList.ToList())
            {
                var info = AccountInfo.GetTaskInfo(runner.Task.ID);
                if (info.NextRunTime < time)
                {
                    time = info.NextRunTime;
                }
            }

            m_subAccountInfo.NextLoginTime = time;

            WxLog.Debug($"SubEntity.InternalBackupWorkThread Name<{m_subAccountInfo.Name}> "
                        + $"NextLoginTime<{m_subAccountInfo.NextLoginTime:yyyy-MM-dd HH:mm:ss}>");
            m_subAccountInfo.Save();
            Stop();
        }
Beispiel #21
0
        /// <summary>
        /// 反注册处理器
        /// </summary>
        /// <typeparam name="TIn"></typeparam>
        /// <param name="handler"></param>
        /// <returns></returns>
        public bool UnRegisterHandler <TIn>(Action <TIn> handler)
        {
            try
            {
                if (handler == null)
                {
                    return(false);
                }

                var type = typeof(TIn);
                if (m_msgHandlers.ContainsKey(type))
                {
                    m_msgHandlers[type] = Delegate.Remove(m_msgHandlers[type], handler);
                }

                return(true);
            }
            catch (Exception ex)
            {
                WxLog.Error($"WxDispatcher.UnRegisterHandler Error <{ex}>");
                return(false);
            }
        }
Beispiel #22
0
        /// <summary>
        /// 关闭进程
        /// </summary>
        protected void CloseProcess()
        {
            try
            {
                if (EntityProcess != null)
                {
                    EntityProcess.Kill();
                    EntityProcess.Close();
                    EntityProcess.Dispose();
                    EntityProcess = null;
                }
            }
            catch (Exception ex)
            {
                WxLog.Error($"WlyEntity.CloseProcess Error <{ex}>");
            }

            if (!string.IsNullOrEmpty(DMGuid))
            {
                DMService.Instance.ReleaseDMSoft(DMGuid);
                DMGuid = null;
            }
        }
        private void KeepAliveElapsed(object sender, ElapsedEventArgs e)
        {
            m_timer.Stop();
            var now = DateTime.Now;

            try
            {
                foreach (var entity in entityList.ToList())
                {
                    if ((entity.State == RunningState.Stopped) || ((now - entity.StartTime).TotalMinutes > 10))
                    {
                        entity.Stop();
                        entityList.Remove(entity);

                        var newEntity = new AppEntity(entity);
                        entityList.Add(newEntity);
                        newEntity.Start(m_config.ProgramPath);
                    }
                }

                foreach (var reg in regList)
                {
                    if (!reg.Run)
                    {
                        reg.Start(m_config.ProgramPath, reg.Index);
                    }
                }
            }
            catch (Exception ex)
            {
                WxLog.Error($"MainWindowViewModel.KeepAliveElapsed Ex <{ex}>");
            }
            finally
            {
                m_timer.Start();
            }
        }
Beispiel #24
0
        /// <summary>
        /// 命令队列处理函数
        /// </summary>
        private void HandleCmdQueue()
        {
            while (true)
            {
                m_queueSemaphore.WaitOne();
                IList <MySqlCommand> cmdList;
                lock (m_queueLocker)
                {
                    WxLog.Warn($"MySqlDatabase.HandleCmdQueue \t<{m_sqlCommands.Count}>");
                    cmdList = m_sqlCommands.ToList();
                    m_sqlCommands.Clear();
                }

                // 执行批量命令
                MySqlTransaction tx = m_connection.BeginTransaction();
                foreach (MySqlCommand mySqlCommand in cmdList)
                {
                    mySqlCommand.Connection  = m_connection;
                    mySqlCommand.Transaction = tx;
                    mySqlCommand.ExecuteNonQuery();
                }

                lock (m_executeLocker)
                {
                    tx.Commit();
                }

                // 消灭多余的信号量
                for (var i = 0; i < (cmdList.Count - 1); i++)
                {
                    m_queueSemaphore.WaitOne();
                }

                Thread.Sleep(1000);
            }
        }
Beispiel #25
0
        protected override void InternalAfterLogin()
        {
            SubTaskMgr.Instance.InitEntityTasks(this);
            m_loginFlag = true;

            if (!m_subAccountInfo.Check)
            {
                var wait = FlowLogicHelper.RepeatRun(() =>
                {
                    var view  = WlyViewMgr.GetView(WlyViewType.略_防沉迷验证);
                    var view1 = WlyViewMgr.GetView(WlyViewType.略_跳过);
                    return(DMService.Instance.FindPic(DMGuid, WlyPicType.择国家, WlyUtilityBiz.GameWndRect) || view.IsCurrentView(DMGuid) ||
                           view1.IsCurrentView(DMGuid));
                }, TimeSpan.FromSeconds(30));
                if (wait && DMService.Instance.FindPic(DMGuid, WlyPicType.择国家, WlyUtilityBiz.GameWndRect))
                {
                    CreateRole(AutoPlayerVM.Instance.GetAvailableName());
                }
            }

            WxLog.Debug($"SubEntity.InternalAfterLogin AutoPlay Start <{m_subAccountInfo.Name}>");

            // 先检测主公等级
            var level = WlyUtilityBiz.GetMainLevel(DMGuid);

            if (level > m_subAccountInfo.Level)
            {
                WlyMainLevelMgr.Upgrade(DMGuid);
                m_subAccountInfo.Level = level;
                m_subAccountInfo.Save();
            }

            // 检测银币数量是否到达上限
            var result = WlyUtilityBiz.GetPercent(DMGuid, new WxRect(133, 26, 217, 47), "f3f3da-000000", out var percent);

            if (!result)
            {
                throw new InvalidOperationException("Cannot Get Money Amount");
            }

            // 银币超过上限了,想尽办法进行使用
            if (percent >= 0.9)
            {
                GetEuqipments();
                UpgradeEquipments();
            }

            // 如果可以捐国政了,则捐国政
            var now       = DateTime.Now;
            var timeNotOK = (now.DayOfWeek == DayOfWeek.Sunday) && (now.Hour >= 4) && (now.Hour < 21);

            if ((percent >= 0.5) && (m_subAccountInfo.GetBuildingInfo(WlyBuildingType.主城).Level >= 130) && !timeNotOK)
            {
                // 捐款2600万获取100政绩
                WlyViewMgr.GoTo(DMGuid, WlyViewType.场景_国政);

                // 点开内政
                var wait = FlowLogicHelper.RepeatRun(() =>
                {
                    DMService.Instance.LeftClick(DMGuid, new WxPoint(95, 42));
                    if (DMService.Instance.FindStr(DMGuid, new WxRect(483, 100, 516, 120), "国政", WlyColor.Normal))
                    {
                        return(true);
                    }

                    Thread.Sleep(500);
                    return(false);
                }, TimeSpan.FromSeconds(10));
                if (!wait)
                {
                    throw new InvalidOperationException();
                }

                // 捐款铸造
                DMService.Instance.LeftClick(DMGuid, new WxPoint(560, 270));
                DMService.Instance.LeftClick(DMGuid, new WxPoint(613, 438));
                DMService.Instance.SendString(DMGuid, WndHwnd, "50000000");

                wait = FlowLogicHelper.RepeatRun(() =>
                {
                    if (WlyUtilityBiz.GetAmount(DMGuid, new WxRect(577, 429, 671, 447), "e7e7fd-000000", out var amount))
                    {
                        return(true);
                    }

                    Thread.Sleep(500);
                    return(false);
                }, TimeSpan.FromSeconds(10));
                if (!wait)
                {
                    throw new InvalidOperationException();
                }

                DMService.Instance.LeftClick(DMGuid, new WxPoint(739, 438));
            }

            // 如果可以进行开发,则马上开发并立刻结束
            //if (DevelopTime < DateTime.Now)
            //{
            //    WlyUtilityBiz.GetAmount(DMGuid, new WxRect(133, 26, 217, 47), "f3f3da-000000", out var amount);
            //    if (amount > 500000)
            //    {
            //        DevelopCity();
            //        //Stop();
            //    }
            //}
        }
Beispiel #26
0
 private void WxLog_Test_Fatal()
 {
     WxLog.Fatal("Test");
 }
Beispiel #27
0
 private void WxLog_Test_Warn()
 {
     WxLog.Warn("Test");
 }
Beispiel #28
0
 private void WxLog_Test_Info()
 {
     WxLog.Info("Test");
 }
Beispiel #29
0
 private void WxLog_Test_Debug()
 {
     WxLog.Debug("Test");
 }
Beispiel #30
0
 private void TestMethod(TestEntityB B)
 {
     ResultB = B;
     WxLog.Debug($"TestMethodBussiness.TestMethod {B.GetType().FullName}");
 }