private void BTN_LaunchWC3_Click(object sender, EventArgs e) { string LastInstallPath = Settings.InstallPath; if (!File.Exists(Path.Combine(LastInstallPath, "Warcraft III.exe")) && !File.Exists(Path.Combine(LastInstallPath, "war3.exe"))) { OpenFileDialog FDialog = new OpenFileDialog { Title = "워크래프트 실행 파일을 선택하세요.", Filter = "워크래프트 EXE파일|Warcraft III.exe;war3.exe" }; if (FDialog.ShowDialog() != DialogResult.OK) { return; } Settings.InstallPath = LastInstallPath = Path.GetDirectoryName(FDialog.FileName); string MixPath = $"{LastInstallPath}\\Cirnix"; if (!File.Exists(MixPath + ".mix")) { File.WriteAllBytes(MixPath + ".mix", Global.Properties.Resources.Cirnix); NativeMethods.WritePrivateProfileString("Cirnix", "Mana Bar", "0", MixPath + ".ini"); NativeMethods.WritePrivateProfileString("Cirnix", "Show AS & MS in Number", "1", MixPath + ".ini"); } } Process[] proc = Process.GetProcessesByName(TargetProcess); if (proc.Length > 0) { if (MetroDialog.YesNo("기존 프로세스 감지 됨", "Warcraft III 프로세스가 아직 실행 중입니다.\n종료하고 실행하시겠습니까?")) { foreach (var item in proc) { try { item.Kill(); } catch { proc = Process.GetProcessesByName(TargetProcess); if (proc.Length > 0) { MetroDialog.OK("액세스 오류", "Warcraft III 프로세스를 종료할 수 없었습니다.\n작업 관리자에서 수동으로 프로세스를 종료하세요."); return; } } } } else { return; } } bool isDebug = false; if (File.Exists(Path.Combine(ResourcePath, "JNService", "DEBUG.txt"))) { isDebug = true; } CLRHook.Injector.Init(LastInstallPath, MetroDialog.Select("화면 표기 설정", "창 모드", "전체 창", "전체화면"), true, isDebug); }
private async void BTN_LaunchWC3_Click(object sender, EventArgs e) { string LastInstallPath = Settings.InstallPath; if (!File.Exists(Path.Combine(LastInstallPath, "JNLoader.exe"))) { OpenFileDialog FDialog = new OpenFileDialog { Title = "실행 파일을 선택하세요.", Filter = "워크래프트 EXE파일|JNLoader.exe;Warcraft III.exe;war3.exe" }; if (FDialog.ShowDialog() != DialogResult.OK) { return; } Settings.InstallPath = LastInstallPath = Path.GetDirectoryName(FDialog.FileName); string MixPath = $"{LastInstallPath}\\Cirnix"; if (!File.Exists(MixPath + ".mix")) { File.WriteAllBytes(MixPath + ".mix", Global.Properties.Resources.Cirnix); NativeMethods.WritePrivateProfileString("Cirnix", "Mana Bar", "0", MixPath + ".ini"); NativeMethods.WritePrivateProfileString("Cirnix", "Show AS & MS in Number", "1", MixPath + ".ini"); } } if (Memory.Component.Warcraft3Info.Process != null) { if (MetroDialog.YesNo("기존 프로세스 감지 됨", "Warcraft III 프로세스가 아직 실행 중입니다.\n종료하고 실행하시겠습니까?")) { if (!Memory.Component.Warcraft3Info.Close()) { MetroDialog.OK("액세스 오류", "Warcraft III 프로세스를 종료할 수 없었습니다.\n작업 관리자에서 수동으로 프로세스를 종료하세요."); return; } } else { return; } } GameModule.StartWarcraft3(LastInstallPath, MetroDialog.Select("화면 표기 설정", "창 모드", "전체 창", "전체화면")); }