static void Main() { /* Ищем процесс арчейджа, получаем его TITLE для того чтобы использовать в CaptureScreen */ Process[] processlist = Process.GetProcesses(); foreach (Process process in processlist) { if (process.ProcessName == "archeage") { Program.ArcheageWindowTitle = process.MainWindowTitle; Program.ArcheageWindowHandle = process.MainWindowHandle; } } Program.Archeage = User32.FindWindow(null, Program.ArcheageWindowTitle); /* Загружаем элементы интерфейса для распознавания */ VisionHeroLocation.LoadHeroCircle(); VisionTarget.LoadTargetBars(); VisionEnemy.LoadEnemyBars(); VisionHero.LoadHeroBars(); VisionAlliance.LoadAllianceBars(); VisionAlliance.LoadManaBars(); VisionEnemy.LoadEnemyTooltips(); VisionNumbers.LoadDistanceNumbers(); VisionGame.LoadButtonF(); VisionGame.LoadButtonG(); Route.LoadGrindRoute("D:\\CurrentRoute.txt"); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); }
static void Main() { /* Ищем процесс арчейджа, получаем его TITLE для того чтобы использовать в CaptureScreen */ Process[] processlist = Process.GetProcesses(); foreach (Process process in processlist) { if (process.ProcessName == "archeage") { Program.ArcheageWindowTitle = process.MainWindowTitle; Program.ArcheageWindowHandle = process.MainWindowHandle; } } ///////////////////////// WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator); if (hasAdministrativeRight == false) { ProcessStartInfo processInfo = new ProcessStartInfo(); //создаем новый процесс processInfo.Verb = "runas"; //в данном случае указываем, что процесс должен быть запущен с правами администратора processInfo.FileName = Application.ExecutablePath; //указываем исполняемый файл (программу) для запуска try { Process.Start(processInfo); //пытаемся запустить процесс } catch (System.ComponentModel.Win32Exception) { //Ничего не делаем, потому что пользователь, возможно, нажал кнопку "Нет" в ответ на вопрос о запуске программы в окне предупреждения UAC (для Windows 7) } Application.Exit(); //закрываем текущую копию программы (в любом случае, даже если пользователь отменил запуск с правами администратора в окне UAC) } else //имеем права администратора, значит, стартуем { //////////////////////// Program.Archeage = User32.FindWindow(null, Program.ArcheageWindowTitle); /* Загружаем элементы интерфейса для распознавания */ VisionHeroLocation.LoadHeroCircle(); VisionTarget.LoadTargetBars(); VisionEnemy.LoadEnemyBars(); VisionHero.LoadHeroBars(); VisionAlliance.LoadAllianceBars(); VisionAlliance.LoadManaBars(); VisionEnemy.LoadEnemyTooltips(); VisionNumbers.LoadDistanceNumbers(); VisionGame.LoadButtonF(); VisionGame.LoadButtonG(); // Route.LoadGrindRoute("RecordRoute.txt"); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form3()); } }
private void TargetTimer_Tick(object sender, EventArgs e) { bool FindForm = false; for (int y = 100; y < 200; y++) { if (FindForm == true) { break; } for (int x = 0; x < ScreenCapture.LockBitmap.Screen.Width - 900; x++) { if (FindForm == true) { break; } int?TargetBarForm = VisionForm.FindForm(VisionTarget.TargetBars, x, y); if (TargetBarForm != null) { FindForm = true; Hero.Target = true; int TargetBarFormNumber = TargetBarForm ?? default(int); /* Определяем количество ХП у врага */ int EnemyHpLenght; for (EnemyHpLenght = 0; EnemyHpLenght < 365; ++EnemyHpLenght) { if (VisionForm.FindForm(VisionEnemy.EnemyBars, x + EnemyHpLenght + 1, y + 2) != null) { //continue; } else { break; } } /* Определяем дистанцию для разных типов монстров */ if (TargetBarFormNumber == 0) { /* Обычный моб */ Enemy.Distance = VisionNumbers.GetDistance(x + 215, y - 12); Enemy.Type = "Normal"; } else if (TargetBarFormNumber == 1) { /* Босс */ Enemy.Distance = VisionNumbers.GetDistance(x + 325, y - 12); Enemy.Type = "Boss"; } else if (TargetBarFormNumber == 2) { /* Слабый моб */ Enemy.Distance = VisionNumbers.GetDistance(x + 110, y - 12); Enemy.Type = "Easy"; } Enemy.Health = EnemyHpLenght; } } } if (FindForm == false) { Hero.Target = false; Enemy.Distance = null; Enemy.Health = null; } }