728x90
블로그 인기글
● 메이플스토리 신규 룬패치/자동해제 프로그램 [링크 이동]
● 메이플스토리 거짓말탐지기 알림 프로그램 [링크 이동]
● C#에서 TensorFlow 사용하는법 [링크 이동]
Nuget 패키지에서 Ionic.Zip을 설치해야합니다.
void ChromeDriverUpdater()
{
string chromeversion_txt_path = "./chromedriver_version.txt";
if (!System.IO.File.Exists(chromeversion_txt_path))
{
using (StreamWriter sw = new StreamWriter(System.IO.File.Open(chromeversion_txt_path, FileMode.Create), Encoding.UTF8))
{
}
}
WebClient webClient = new WebClient();
string install_version = System.IO.File.ReadAllText(chromeversion_txt_path);
string chromedriver_version = webClient.DownloadString("https://chromedriver.storage.googleapis.com/LATEST_RELEASE");
if (install_version != chromedriver_version)
{
DialogResult msgresult = MessageBox.Show("크롬 드라이버가 최신버전이 아닙니다.\n최신으로 업데이트 하시겠습니까?", "크롬 드라이버 업데이트", MessageBoxButtons.YesNo);
if (msgresult == DialogResult.Yes)
{
try
{
Console.WriteLine("크롬 드라이버를 다운로드 중 입니다.");
Console.WriteLine("잠시만 기다려 주세요.");
webClient.DownloadFile($"https://chromedriver.storage.googleapis.com/{chromedriver_version}/chromedriver_win32.zip", Application.StartupPath + @"\chromedriver_win32.zip");
System.IO.File.WriteAllText(chromeversion_txt_path, chromedriver_version);
ExtractZipfile(Application.StartupPath + @"\chromedriver_win32.zip", Application.StartupPath);
System.IO.File.Delete(Application.StartupPath + @"\chromedriver_win32.zip");
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("");
Console.WriteLine("크롬 드라이버 업데이트 완료!");
Console.WriteLine("");
Console.WriteLine("");
MessageBox.Show("크롬 드라이버 업데이트가 완료되었습니다.");
}
catch
{
MessageBox.Show("크롬 드라이버 업데이트 중 오류가 발생했습니다.\n수동으로 업데이트 해주세요." + Environment.NewLine +
"----수동 업데이트 방법----" + Environment.NewLine +
"1. https://chromedriver.chromium.org/downloads 접속" + Environment.NewLine +
"2. 파란색 큰 글씨로 된 ChromeDriver xx.x.xxxx.xx 형식 글씨 클릭" + Environment.NewLine +
"3. chromedriver_win32.zip 다운로드 및 xx.x.xxxx.xx 로 된 버전내용 Ctrl+C(복사)" + Environment.NewLine +
"4. 압축파일은 압축해제 후 프로그램 실행경로에 덮어쓰기" + Environment.NewLine +
" 복사한 버전내용은 프로그램 실행경로에 chromedriver_version.txt 안에 붙여넣고 저장" + Environment.NewLine +
"5. 프로그램 재 실행");
Application.Exit();
}
}
else
{
MessageBox.Show("크롬 드라이버를 업데이트하지 않으면 프로그램을 이용할 수 없습니다.");
Application.Exit();
}
}
}
void ExtractZipfile(string sourceFilePath, string targetPath)
{
Encoding ibm437 = Encoding.GetEncoding("IBM437");
Encoding euckr = Encoding.GetEncoding("euc-kr");
using (ZipFile zip = new ZipFile(sourceFilePath))
{
foreach (ZipEntry entry in zip.Entries)
{
byte[] ibm437_byte = ibm437.GetBytes(entry.FileName);
string euckr_fileName = euckr.GetString(ibm437_byte);
entry.FileName = euckr_fileName;
entry.Extract(targetPath, ExtractExistingFileAction.OverwriteSilently);
}
}
}
728x90
'자료' 카테고리의 다른 글
C# 스킨Material (0) | 2020.08.14 |
---|---|
[YOLO - darkflow] CUDA_ERROR_OUT_OF_MEMORY, CUDNN_STATUS_ALLOC_FAILED 오류 해결 방법 (0) | 2020.08.13 |
C # Selenium HttpWebRequest 세션 (Session) 공유 (0) | 2020.08.10 |
C#/Python Selenium install (0) | 2020.08.10 |
파이썬 셀레니움 크롬드라이버 자동설치 (0) | 2020.08.10 |