본문 바로가기
728x90

Programming15

프로그래머가 만든 Thread에서 WindowsForm Control 접근시 문제 프로그래머가 생성한 Thread에서 WindowsForm의 control을 직접 접근 할시 오류가 발생 합니다. ​ 이 해결 법은 아래와 같이 (TextBox를 예로 든 코드 입니다.) 하시면 됩니다. if (box.InvokeRequired) { box.Invoke(new MethodInvoker(() => { box.Text = message; box.Update(); })); } else { box.Text = message; box.Update(); } 여기서 코딩 하시다 보면 매번 코드를 반복하는 부분이 생기는데 이 경우 Extension Methods를 이용하면 편하게 사용 하실 수 있습니다. https://docs.microsoft.com/en-us/dotnet/csharp/programmi.. 2021. 2. 17.
Danbooru Image Downloader 우선 우리나라에서는 Https 사이트는 전부 막혀 있습니다. 그래서 만든 프로그램 작동해 봤자 Danbooru 사이트에 접속이 되지 않습니다. 고로 프로그램은 올리지 않습니다. ​ Danbooru 사이트는 원화가 들이 자신들의 그림을 올리는 사이트로 수백만개의 그림들이 올라와 있습니다. 작가별, 카테고리 별로 자세하게 검색이 가능하게 되어 있어 그림을 배우거나 자신에 프로젝트에 맞는 원화가를 찾아 연락을 하기 좋은 사이트지만 그림의 주제에 제약이 없고 업로드에 제약이 없기 때문에 선정적인 그림도 다수 포함 되어 있어서 차단 되는게 맞다고 생각합니다. ​ 그럼에도 불구하고 예전에 10만원 넘게 주고 사서 보던 원화집보다 더 다양한 분야에 좋은 퀄리티의 그림을 보고 레퍼런스로 삼을 수 있는 것은 원화가 이거.. 2021. 2. 17.
Selenium을 이용한 Image Dowloader (2020년 12월 11일 글 옮김) 1. 최초 버전 2. 몇가지 기능 추가 및 상태 확인을 위한 수정 버전 3. 불편한 부분을 수정 하고 필요 없는 부분을 제거한 버전 4. 다운 로드 진행 도를 조금 더 명확하게 보이게 처리 한 것과 여러개 다중으로 다운 받도록 수정 버전 2021. 2. 17.
Html 코드와 Selenium 샘플 코드 (link 가져오기) Example1 ChromeDriverService service = ChromeDriverService.CreateDefaultService(); service.HideCommandPromptWindow = true; ChromeOptions option = new ChromeOptions(); option.AddArgument("headless"); option.AddArgument("disable-gpu"); using (IWebDriver driver = new ChromeDriver(service, option)) { driver.Navigate().GoToUrl(site); driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(10); dri.. 2021. 2. 16.
Selenium 이용시 Command 창 안 띄우기 Chrome Driver var driverService = ChromeDriverService.CreateDefaultService(); driverService.HideCommandPromptWindow = true; var driver = new ChromeDriver(driverService, new ChromeOptions()); ​ IE Driver var driverService = InternetExplorerDriverService.CreateDefaultService(); driverService.HideCommandPromptWindow = true; var driver = new InternetExplorerDriver(driverService, new InternetExplorer.. 2021. 2. 16.
Telegram Bot이 참가하고 있는 모든 방 ID 가져오기 아래와 같이 ID를 받아오면 됩니다. class TelegramBot { private static readonly string _token = "받아온 토큰"; private const string CHAT_HEAD = "\"chat\":{\"id\":"; private const string CHAT_IDS_FORM = "https://api.telegram.org/bot{0}/getUpdates"; public static List GetChattingRoomIDs(out string error) { error = ""; string url = string.Format(CHAT_IDS_FORM, _token); HttpWebRequest req = WebRequest.Create(new Uri(ur.. 2021. 2. 16.