윈도우 프로그램을 사용하다보면 고정된 환경변수가 필요합니다. 내피씨의 내문서 파일과 저멀리 부산에 있는 친구의 내친구 피씨의 내문서 폴더의 절대 경로는 다를 수 있기 때문에 프로그램 설계시 머리가 아파지는 일을 겪을 수 있습니다. 이러한 문제점을 해결 하기 위해서 윈도우에서는 환경변수를 제공하고 있습니다. 예를 들어 내문서의 환경 변수는 %CSIDL_DEFAULT_MYDOCUMENTS 로 각기다른 피씨의 내문서 경로를 동일하게 로드를 할 수 있게 됩니다. MSDN에서는 해당 내용 전부를 확인할 수 있으며, 자주 사용하는 것만 정리해 보도록 하겠습니다. C#에서의 인식된 환경변수 사용법 제가 잘몰라서 처음에 무척 헤매였었는데, 이걸 그대로 사용을 할수가 없었습니다. Enviroment.SpecialFold..
최근 C#을 사용할일이 전혀없다가 최근에 공부를 새로 하고 있습니다. 자료 정리겸 블로그에 내용을 남겨둡니다. 파일과 폴더를 착각해서 계속 동작을 안하고 있었는데, 파일과 폴더를 착각하지 말아주세요 소스는 별게 없습니다. System.IO 를 로드하고 사용해 주세요. string path = "C:\\Windows"; DirectoryInfo di = new DirectoryInfo(path); //폴더 존재유무 확인 if (di.Exists) { Console.WriteLine("있음"); }else { Console.WriteLine("없음"); di.Create(); } DirectoryInfo.Exists 를 통해서 폴더의 존재유무를 확인할 수 있습니다.
남는 노트북이 하나 있어서 WOL 원격 프로그램으로 제어하려고 간단한 WOL관련 프로그램을 만들고 있는데요. 레이아웃 화면을 만들어서 테스트 폼을 호출해보니 버튼에 포커스가 있었습니다. 혼자서만 사용할 프로그램이라 제가 관리하는 맥, 맥북프로, IBM노트북 을 순차적으로 관리하려고 삭제/추가 버튼을 넣었는데 삭제 버튼이 포커스가 있어서 이상하게 보이는 현상이 발견되었습니다. C#버튼 포커스 문제 처리방법 안내 해결방법은 무척 간단합니다. 속성에서 동작 - TabStop 의 값을 false로 바꾸면 간단하게 해결이 됩니다.
최근 작업하고 있는 프로젝트중에 이미지를 처리하는 프로그램이 있습니다. 이미지의 특정한 부분으로 어떤 이미지에서 사용이 되었는지 찾는 프로그램인데요. 비슷한 예제로 핀트레스트의 유사이미지를 찾는 기능입니다. 유사이미지 처리 로직중에 이미지 사이즈를 변경해서 픽셀값의 일치여부로 유사이미지를 파악하는 로직이 있는데 그걸 응용해서 간단하게 부분이미지로 전체이미지를 찾는 기능을 구현하게 되었습니다. 이러한 부분이미지로 어떻게 전체이미지를 파악할 수 있을까요? 이미지는 픽셀로 구성되어 있으며, 픽셀의 값만 확인할 수 있다면 특정한 값을 뽑을 수가 있습니다. 픽셀은 RGB 값으로 이루어지며, 0~255의 값으로 이루어져 있습니다. 그걸 평균을 내고(Gray) 다시 특정한 값 이상은 1, 이하는 0으로 간단하게 구성..
아는 동생이 엑셀목록을 정리해서하는 반복작업을 하고 있어서 간단하게 윈도우용 프로그램을 하나 만들어보았습니다. C#에서 윈도우를 사용하려면 Microsoft라이브러리가 필요한데요. 제가 사용하고 있는 환경이 가상화(패러럴즈)라서 그런지 컴파일 중에 아래와 같은 오류를 확인할 수 있었습니다. 내용을 살펴보니 사용하고 있는 윈도우의 OLED 파일의 버전이 일치하지 않아 생기는 오류로 아래 경로에서 OLED파일을 다운로드 받고 시스템경로에 넣어주면 해결이 됩니다만, 버전에 따라서 제대로 동작을 하지 않는 듯 합니다. 주의하셔야 할점은 오피스 2013버전과 2016버전으로 나눠어지며, 해당 버전에 맏는 파일을 다운 받으셔서 해결을 하시기 바랍니다. 보다 더 자세한 내용은 아래 블로그를 참고해주세요. 오피스 20..
요즘 C#프로그램을 사용하면서 많은 공부를 하고 있는데요. 이번에는 크롬창을 어떻게 실행시킬지에 대해서 알아보도록 하겠습니다. 크롬을 실행시키기 위해서는 직접 설치된 프로그램을 실행하는 방법과 셀레니움을 이용한 크롬 드라이버로 크롬을 호출하는 방식이 있습니다. 이번에는 셀레늄이 아닌 크롬을 호출하는 방식을 알아보겠습니다. C#에서는 특정 프로그램을 실행시키기 위해서 Process 라는 명령어를 사용합니다. 실행시키는 형식은 다음과 같습니다. Process.Start("chrome.exe", "http://linguist79.tistory.com"); 처음에는 크롬이 실행되는 프로세스명을 타이핑해주시구요. 뒤쪽은 URL 주소입니다. 이 Process 명령어를 활용하시면 다른 프로그램도 실행하실 수 있는데요..