목록프로그래밍 (95)
개발자 블로그
일단 "FirewallAPI.dll" 파일을 참조로 추가해 줘야 된다. "FirewallAPI.dll" 파일은 "C:\Windows\System32" 폴더 밑에서 찾을 수 있다. 일단 FirewallManager 관련 클래스 using NetFwTypeLib; using System; namespace Test.Utils { class FirewallAppInfo { public bool mListAdded; // 방화벽 앱 목록에 추가되어있는지 여부 public bool mEnabled; // 방화벽 앱 목록에 '허용'으로 되어있는지 여부 } class MyFirewallManager { private const string CLSID_FIREWALL_MANAGER = "{304CE942-6E39-40..
메뉴에 별도로 "파일관리자"앱이 없어서 에뮬레이터에서는 파일관리자앱이 없는 줄 알았다. 그래서 지금까지 "Android Device Monitor"를 사용해서 파일을 확인하고 관리했었는데.. 이제서야 파일관리자 앱을 찾았다. 지금까지 참 불편하게 일했었네..-_-;;일단 첨부한 이미지는 안드로이드 마시멜로우(API 23) 버전이 설치된 에뮬레이터 기준이다. 하지만 누가(API 24)에서도 같은 방법으로 파일관리자 앱을 실행할 수 있다. 메뉴에서 [설정] 아이콘을 클릭. 설정 앱에서 [저장소 및 USB] 항목을 클릭. [내부 저장소] 항목을 클릭. 만약 SD카드의 파일을 확인하려면 밑에 있는 [SDCARD]를 클릭하면 된다. 내부 저장소 화면에서 화면을 밑으로 조금 내리면.. [탐색] 이라는 항목이 보인다..
처음 이 에러가 발생하지는 꽤 오래 됐는데 이제서야 해결을 했다. 원인을 찾고나면 참 별거 아닌건데.. 지금까지 버그 수정했던 것들 중 제일 나를 괴롭혔던 문제같다. (사실은 아직 해결못한 놈들이 더 나를 괴롭히고 있겠지만..)계속해서 발생하던 에러는 아니고, 삼성 단말 중 안드로이드 마시멜로우 버전에서만 발생했다. SecurityException이 뜨게되면 제일 먼저 의심하는게 AndroidManifest.xml 파일의 이지만 이건 그런 문제가 아니었다. 아,, 일단 먼저 에러메시지를 봐야겠구나..전체 에러메시지는 아래와 같다. (패키지명은 *로 가렸다.) Fatal Exception: java.lang.SecurityException: Permission Denial: starting Intent {..
안드로이드 Developers 사이트에 보면 "Device Art Generator"라는게 있다. 이름에서 대략 유추 가능하듯이 뭔가를 만들어주는거다. 뭐를? 디바이스 프레임이 추가된 형태의 스크린샷을. 나는 단지 스크린샷만 준비해서 업로드(드래그) 하면 된다.사실 개발자가 하기에는 되게 귀찮은 일인데 클릭한번으로 아래 이미지처럼 근사한 이미지를 얻을 수 있다니 참 고마운 기능이다. 그런데 해당 페이지를 자세히 보면 아래와 같은 내용이 있다.여기서 만든 이미지를 구글 플레이의 스크린샷에는 사용하지 말라는 것. 솔직히 위에 저런 이미지를 만드는 이유중에 하나가 구글 플레이 스크린샷에 등록하려고 하는건데 쓰지말라니...이유가 궁금해서 구글링을 좀 해봤는데 아마도 예전에는 스크린샷 등록과 관련해서 "가공되지 ..
관련글 : https://code.google.com/p/android/issues/detail?id=62800위에 링크를 보면 알겠지만 안드로이드 킷캣에서만 발생하는 문제인 듯 하다. 실제로 롤리팝이나 마시멜로우 기기에서 테스트해보면 발생하지 않는다. 젤리빈에서도 역시 발생하지는 않는 것 같은데,, 확실하지는 않다. 테스트 기기 해상도가 낮아서 문제가 되는 크기의 큰 텍스트를 그리지 못했기 때문일 수도 있어서,,해결방법도 역시 링크로 대체.. (위에 관련글도 같은 링크를 안내하고 있다.)해결방법 : http://stackoverflow.com/questions/1723846/how-do-you-draw-text-with-a-border-on-a-mapview-in-android/5817510#58175..
이틀 연속으로 해당 에러가 리포팅 되었다. 한번도 보고되지 않았던 에러인데.. 아마도 최근에 사용자가 좀 늘어나면서 보고된 걸로 보인다. 전체 에러메시지는 아래와 같다. Fatal Exception: java.lang.NullPointerException android.webkit.WebViewClassic.setBaseLayer (WebViewClassic.java:5898) android.webkit.WebViewClassic.setNewPicture (WebViewClassic.java:11916) android.webkit.WebViewClassic$PrivateHandler.handleMessage (WebViewClassic.java:11099) android.os.Handler.dispatc..
즐겨찾기를 정리하다가 예전에 추가해놓았던 RichEdit 컨트롤 관련 자료들을 그냥 삭제하기 아까워서 정리를 해둘까한다.그 때 당시 만들던 MFC 프로그램이 원래 그냥 에디트 컨트롤을 사용했었는데 키워드 강조 기능을 추가하기 위해서 RichEdit 컨트롤로 전환을 했었다. 그 과정에서 문제가 생긴게.. 텍스트의 양이 늘어나면 키워드 강조를 위해서 소모되는 시간이 굉장히 크게 증가했었다. 이 문제를 해결하기 위해서 찾았었던 자료들이다.자 그럼 느려터진 RichEdit 컨트롤의 속도를 향상시키기 위해서 찾아봤었던 자료들.. 1. Fast HTML syntax highlighting with the Rich Edit control - Code Project 2006년도 자료라서 그런건지 데모 프로그램이 제대로..
안드로이드 화면을 켜진 상태로 유지하는 두 가지 방법이 있다.1. FLAG_KEEP_SCREEN_ON 플래그를 이용하는 방법 2. PowerManager를 이용하는 방법일단 대부분의 경우에는 1번의 방법을 사용하면 된다.OnCreate() 메서드 안에 아래 코드 한 줄만 추가해주면 된다. getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 특별한 퍼미션도 요구하지 않고 쉽게 사용할 수 있지만 한가지 제약사항이 있다. 해당 액티비티가 백그라운드로 전환되면 화면 켜짐 상태가 더이상 유지되지 않는다. 화면을 항상 켜진 상태를 유지하도록 토글기능을 제공하는 위젯처럼 몇몇 특수한 경우에는 액티비티가 백그라운드 상태에 있더라도 화면을 계속해서..
이제는 svg 파일까지 수정하는 지경에 이르렀다. 처음에 몇번은 해상도별로 png 파일을 만들었었는데 최근에 편집하는 방법을 삽질을 통해서 배웠다. svg 파일은 해상도에 관계없이 하나만 준비하면 안드로이드 스튜디오에서 알아서 처리해주기 때문에 아주 편하다. 반면 png 파일은 mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi 이렇게 다섯 개의 파일을 준비해야 된다. 이미지가 한 두개면 모를까.. 열개만 돼도 50개를 준비해야 된다. 편집툴은 inkscape를 사용했다. 프리웨어. 조금 무거운 느낌이 있다. 리눅스에 최적화 된 프로그램이라고 어디서 주워들은 것 같다.서론이 너무 길었네. 아래 이미지는 구글 머티리얼 아이콘 사이트에서 구할 수 있는 네비게이트 버튼이다. (여기를 클릭하면 해당 ..
살다살다 별걸 다 만들어본다.. 개발하면서 아이콘이 필요할 때는 주로 인터넷에서 저작권 무료 이미지나 아이콘을 다운받아서 사용했었는데.. 이번에는 어쩌다보니 '딸기우유' 아이콘이 필요하게 되었다.아무리 찾아봐도 내 입맛에 맞는 아이콘이 없더라.. 그냥 우유도 아니고 딸기우유라서 더더욱 찾기 어려웠던 것 같다.그래서 한번 직접 만들어봤다. 이미지 툴은 역시 프리웨어인 Paint.net을 이용해서 제작했다. 개발자한테 이런 디자인 작업은 너무나도 어렵다. 이런 간단한 이미지 만드는데도 한참이 걸렸다. 퀄리티가 내가봐도 부실해서.. 누가 써줄지는 모르겠는데 - 더군다나 딸기우유 아이콘이라니.. - 뭔가 정성을 들여서 만든 결과물을 공유하고 싶어서 올려본다. 이건 원본이미지. 배경색이 투명이라서 좀 이상하게 보..
경고 표시 뜨는걸 강제로 무시하는게 좋은 방법은 아니지만, 경우에 따라서는 의도 된 코드인 경우가 종종있다. 공통으로 사용하는 유틸 클래스 같은경우.. 사용안하는 메소드가 있기도 하고, 접근 제한자에 대한 경고가 표시되기도 한다. https://gist.github.com/elevenetc/bf795f94aaf3e92169ef 위 링크에서 전체 SuppressWarnings 목록을 볼 수 있다. 내가 자주 사용하는 몇 가지에 대해서 정리해본다. ResultOfMethodCallIgnored 메서드의 호출의 결과값을 사용하지 않음 UnusedDeclaration 사용되지 않는 메서드 WeakerAccess 접근제한자 SuspiciousNameCombination 의심스러운 이름 결합 (width를 인자로 ..
안드로이드 공식 가이드에 나와있는 방법은 아래 링크를 참조Doze 및 앱 대기 모드 최적화 > 잠자기 및 앱 대기 모드로 테스트 ☞ https://developer.android.com/training/monitoring-device-state/doze-standby.html#testing_doze_and_app_standby 가이드 방법이 잘 나와있지만 내 경우에는 몇 가지 절차들이 필요했다. 초보자에 맞춰서 단계별로 방법을 소개한다. 1. error: more than one device/emulator 에러가 발생한 경우 $ adb kill-server $ adb start-server 위 명령을 실행하면 해결된다.만약 위 명령으로 해결이 안된다면, 명령어를 입력할 때 에뮬레이터를 직접 지정하는 방..
안드로이드 스튜디오.. Stable 버전이라고 해서 다운받았는데 늘 업데이트 할 때 마다 문제가 생긴다. 2.1 버전으로 업데이트 했을 때도 한글이 네모 모양으로 깨지는 현상이 발생했고, 이 때는 레이아웃 프리뷰 화면에서 API 버전을 "24"가 아닌 낮은 버전(예를 들면 "23")으로 변경하면 한글이 정상적으로 표시 되었다.2.2 버전으로 업데이트 한 뒤에... 역시 또 문제가 생겼다. (이쯤 되면 업데이트 하기가 참 불안해진다...) 지난번 버전에서 발생한 것 처럼 또 한글이 깨진다. 이번에는 API 버전을 바꿔봐도 소용이 없다.해결방법은 있다! 잘 설명된 블로그가 있어서 링크로 대체한다.Android Studio 2.2에서 Layout Preview 한글 깨짐 현상 해결 방법 : http://thd..
안드로이드 인앱구매 기능을 개발하다가 바보 같이 실제 결제처리를 해버렸다. 실제 돈이 왔다갔다 하는거라서 개발문서 꼼꼼히 읽어보고 구글링 하면서 어떻게 하는건지 잘 파악했다고 생각했는데.. 바보 같이 테스터 e-mail 등록하는걸 깜빡했다.테스트 하면서 '어? 이거 뭔가 진짜 결제되는 것 같은 느낌인데?'라는 생각이 들었지만 실제 결제를 진행해본 경험이 없어서 이게 진짜로 실결제인지를 몰랐다. 실결제와 동일하게 진행되고 청구만 안되는건 줄 알았다. 지금 생각하니깐 되게 바보 같았네..참고로 테스터 e-mail 등록은 "개발자 콘솔"에서 [설정] > [계정 세부정보] 메뉴로 이동한 뒤 "테스트 권한이 있는 Gmail 계정"에 추가해주면 된다. 아래에서 설명하는 내용은 잘못 결제한 구매를 환불처리 하는 방법..
영문 윈도우10 사용자를 대상으로 하는 글입니다. 영어랑 좀 친해져 볼 생각으로 윈도우의 언어를 영어로 변경했다. 시스템 언어를 변경했더니 약간의 문제가 생겼다. 안드로이드 스튜디오의 UI 텍스트가 아래 이미지처럼 깨져서 나왔다. 딱 보니깐.. 한글만 저렇게 네모로 깨져서 보인다. 아마도 윈도우 시스템 언어를 변경하면서 안드로이드 스튜디오에서 사용하는 UI 폰트가 변경되었나보다. 해결하는 방법은 안드로이드 스튜디오 UI 텍스트에 사용하는 폰트를 변경해주면 된다. (한글이 정상적으로 표시되는 폰트로..) 안드로이드 스튜디오의 셋팅 메뉴로 들어간다. 위치는 [File] > [Settings].셋팅 화면에서 [Appearance & Behavior] > [Appearance]로 들어간다. (위 이미지에서 왼쪽..
매번 쓸 때 마다 찾아보는게 귀찮아서 블로그에 남김..왜 이렇게 안외워지냐..-_-;; 안드로이드버전 명칭(영문) 명칭(한글) API버전 2.3 GINGERBREAD 진저브레드 10 4.0 ICE CREAM SANDWICH 아이스크림 샌드위치 15 4.1 JELLY BEAN 젤리빈 16 4.2 JELLY BEAN 젤리빈 17 4.3 JELLY BEAN 젤리빈 18 4.4 KITKAT 킷캣 19 5.0 LOLLIPOP 롤리팝 21 5.1 LOLLIPOP 롤리팝 22 6.0 MARSHMALLOW 마시멜로 23 7.0 NOUGAT 누가 24 7.1 NOUGAT 누가 25 8.0 OREO 오레오 26 8.1OREO오레오27 9.0PIE 파이 28 내가 개발할 때 주로 사용하는 minSdkVersion은 15. ..
안드로이드에서 날짜를 출력하는 경우 "yyyy", "MM", "dd" 같은 포맷 지정문자를 이용해서 원하는 형식으로 날짜를 가져올 수 있다. (날짜 포맷 지정 문자에 대한 자세한 내용은 여기를 참조)사용자에게 보여지지 않고 내부적으로 사용하거나 특정 국가 한정으로 개발하는 앱이라면 위 형식으로도 충분하지만 "다국어지원"을 염두해 둔다면 결코 좋은 방법이 아니다. 한국에서는 "년-월-일" 순서의 날짜표기를 사용하지만, 미국의 경우에는 "월-일-년"으로 출력하는 순서가 서로 다르다. 로케일로 구분해서 포맷을 달리 적용해서 해결 할 수도 있겠지만 아래 코드를 이용하면 매우 깔끔하게 해결이 가능하다. Calendar cal = Calendar.getInstance(); // the value to be form..
안드로이드 앱을 개발할 때 프로그래밍을 통한 방법으로 스마트폰의 이름을 구할 수 있는 방법 몇가지를 소개한다. 최신기기와 구형기기에서 사용할 수 있는 방법에 차이가 있다. 사용자 기준에서 가장 쉽게 "내 스마트폰"을 구분할 수 있는 방법을 제공해주는게 목표인데, 구형기기에서는 한계가 있었다.개발환경은 아래와 같다. - 스마트폰1 : 삼성 갤럭시s2, 젤리빈 - 스마트폰2 : LG G2, 롤리팝 1. android.os.Build 정보를 이용하는 방법 개발자 입장에서는 제일 편한 방법이라고 할 수 있다. 퍼미션도 필요없고, 별도의 절차도 없다. 그냥 상수처럼 가져다 쓸 수 있다. 사용방법이 너무 간단해서 따로 설명할 것도 없다. 코드는 아래와 같다. String tmpStr = ""; tmpStr += "..
한참을 삽질해서.. 혹시나 다른 누군가에게 도움이 싶어서 남기는 글.개발환경은 - OS : Windows10 64bit - IDE : Visual Studio 2015 Community - 윈폼, C#그동안 고정된 크기의 아이콘만 사용하다가 Multi-size 아이콘을 한 번 만들어봤다. (Multi-size 아이콘 변환 사이트 ☞ http://icoconvert.com/)뭐 이미 알고 있겠지만 작업표시줄에 보이는 아이콘은 Form의 속성에서 변경하는거고, 생성되는 .exe 파일의 아이콘은 프로젝트의 속성 페이지에서 변경해줘야 된다. 아이콘 디자인은 변경없고, .exe파일의 아이콘만 여러 해상도를 지원하는 Multi-size 아이콘으로 바꾼거라서 프로젝트의 속성페이지에서 아이콘을 변경했다. 그리고 다시 ..
사용환경에 대해서 먼저 설명하자면, 아래와 같다. OS : Windows10 64bit IDE : 안드로이드 스튜디오(Android Studio) 1.5.1 Device : LG G2, 롤리팝(Lollipop) 윈도우10에서는 스마트폰의 드라이버를 자동으로 설치해주기 때문에 별도의 드라이버를 다운받아서 설치할 필요가 없다. (모든 스마트폰에 다 해당되는지는 모르겠지만, 일단 내가 가지고 있는 LG G2와 삼성 갤럭시s2의 경우에는 바로 인식이 되었다.) 스마트폰(G2)을 연결했는데 안드로이드 스튜디오에서 장치가 표시되지 않는다.스마트폰 설정 메뉴의 [개발자 옵션]에서 [USB 디버깅] 옵션은 당연히 선택 한 상태. 여기서 몇가지 추가적인 설정을 해줘야 정상적으로 연결이 된다. 스마트폰을 PC와 연결하면 ..
안드로이드에서 특정 날짜의 요일은 Calendar 객체의 get 함수를 통해서 int 형식으로 얻을 수 있다. 그렇다면 int 타입의 요일에 해당하는 요일이름은 어떻게 구할까?String 배열을 미리 선언해서 int 타입의 요일을 인덱스로 요일명을 구할 수 있지만 아래 두가지 면에서 그다지 좋은 방법은 아니다. 1. 추가적인 배열을 필요로 한다. 2. 사용언어가 바뀌면 프로그램 소스코드도 변경해야 된다.위 문제를 해결할 수 있는 방법이 있다. 코드는 아래와 같다. String weekDay; // SimpleDateFormat dayFormat = new SimpleDateFormat("EEEE", Locale.US); // 특정 언어로 출력하고 싶은 경우 SimpleDateFormat dayFormat..
비슷한 문제를 겪을 사람이 얼마나 될지는 모르겠지만,, 일단 기록해둔다. 우선 ZipArchive 라이브러리는 MFC에서 사용할 수 있는 zip 파일 압축 및 해제 라이브러리다. MFC에 내장된 클래스는 아니고, Code project에서 다운받은 라이브러리다. (여기를 클릭하면 해당 글로 이동함.)요즘은 MFC를 사용하는 사람도 적을 것 같고, 또 컴파일 할 때 에러가 나기 때문에 최신버전의 visual studio에서는 사용이 불가능하다.개발자의 사이트에서 최신버전의 라이브러리를 다운받을 수 있지만 소유권을 주장할 수 있는 프로그램에 사용하는것은 라이센스 위반이다. 이 경우에는 라이브러리를 별도로 구입해야 한다. 뭐 꼭 라이브러리 홍보하려고 쓰는 것 같네. 어쨌든 나는 더이상 사용 안한다. MFC를 ..
콤보박스 선택된 인덱스의 변경이벤트를 위해서 SelectedIndexChanged 이벤트를 구현한다. 이 경우 소스코드를 통한 변경에도 SelectedIndexChanged 이벤트가 호출된다.경우에 따라 프로그램 코드를 통한 콤보박스 선택인덱스를 변경하는 경우에는 이벤트를 타지 않기를 원하는 경우가 있다. 아래 설명하는 내용은 사용자가 직접 콤보박스의 인덱스는 변경하는 경우에만 이벤트를 타도록 하는 방법이다. 1. Focused 프로퍼티를 이용하는 방법Focused 프로퍼티는 해당 컨트롤에 포커스가 있는지 여부를 조사한다. 사용자가 조작하는 경우에는 해당 컨트롤이 포커스를 받고있기 때문에 true가 된다. 이를 이용하는 코드는 아래와 같다. private void comboBox_name_Selected..
프로그램을 좀 더 이쁘게 꾸미고 싶어서 텍스트박스에 배경이미지를 넣고 싶었는데, C#의 텍스트박스는 기본적으로 배경이미지(Background Image)를 지원하지 않는다. 구글링을 통해서 몇 가지 방법을 찾았는데 딱히 적당한 방법이 없어서 일단은 배경이미지 없이 개발하기로 마음먹었다. 추후 다시한번 검토를 해본 뒤 적용할 예정이다.나중에 다시 구글링 하는 수고를 덜기위해서 찾아놓은 방법들을 정리해본다. 다만, 사전조사 차원에서 찾아본 것이라서 내용이 약간(?) 부실 할 수 있다. 추가적인 정보가 필요한 경우에는 링크를 참조하거나 관련 키워드로 검색해보면 될 것 같다. 1. Textbox 상속을 통한 paint 이벤트 오버라이드 TextBox를 상속받아서 새로운 TextBox를 만드는 방법. OnPain..
※ 개발 PC의 CPU가 AMD 모델인 경우에만 해당되는 글 입니다. ※ 이미지는 클릭하면 확대됩니다. 개발PC를 윈도우10으로 업그레이드 한 뒤 안드로이드 스튜디오(Android Studio)를 다시 설치했다. 정상적으로 동작하지 확인하기 위해서 테스트 어플리케이션을 만들고 안드로이드 가상머신(AVD)에서 돌려보기 위해서 실행했는데 아래와 같은 에러가 발생했다. 에러메시지의 내용을 해석하면, x86 에뮬레이션이 하드웨어 가속을 필요로한다. 인텔 HAXM이 현재 설치되어있고 사용가능한지 확인하라. CPU 가속 상태 : HAX 커널 모듈이 설치되지 않음. Intel x86 에뮬레이터 가속기(HAXM installer)는 이미 설치가 되어있다. (근데 난 어차피 AMD CPU인데..??)설치여부 확인은 SD..
bson - http://www.mongodb.org/downloads Copyright ⓒ 2015 MongoDB, Inc. Apache License 2.0 > Binary JSON, JSON 문서를 바이너리로 인코딩한 포맷, 몽고DB에서 사용 Code Project - LiteZip and LiteUnzip - http://www.codeproject.com/KB/library/LiteZip.aspx Copyright ⓒ 1995-2012 Jean-loup Gailly and Mark Adler, Lucian Wischik, Jeff Glatt GNU Lesser General Public License v3.0 only > zip 파일 압축 및 해제 GSM Codec 06.10 - http://k..
이미지 저작 툴.. 이라는 용어가 맞는지는 잘 모르겠는데,, 일단 개발한 프로그램은 텍스트를 입력하고, 사진의 경로를 입력하면 최종적으로 입력한 글과 사진을 조합해서 하나의 이미지 파일로 만들어주는 그런 프로그램이다.뭐,, 프로그램도 같이 공개하고 싶은데,, 공개할정도로 완성도 있게 개발도 안되었고,,(디자인 작업이 너무 크다,,ㅠㅠ) 공개할만큼 범용적으로 쓸 수 있는 그런 프로그램도 아니라서,,혹시 나중에 필요해지면 그 때 조금 다듬어서 공개를 해볼까 싶다.아래 링크는 개발하면서 참고했던 사이트들이다. http://infodbbase.tistory.com/109 PictureBox 컨트롤의 이미지를 파일로 저장 https://msdn.microsoft.com/ko-kr/library/baw6k39s(v..
C#에서 윈폼 프로그래밍에서..안내메시지 같은 문자열을 소스에 직접 넣은 것 보다 리소스 파일(Resources.resx)을 이용하면 개발할 때는 조금 번거로울지 몰라도 나중에 수정하거나 유지보수 할 때 매우 편하다. 한 줄 짜리 메시지가 아니라 여러줄로 구성 된 문자열의 경우, 개행문자는 Shift + 엔터로 넣어주면 된다. (소스에 넣을 때 처럼 \n 문자를 이용하지 않는다.)참고로 내가 사용하는 Visual Studio 버전은 2015 커뮤니티 에디션.
C# Winform의 FormBorderStyle을 None으로 설정한 경우(또는 CreateParams를 통해서 WS_CAPTION 스타일 속성을 제거한 경우) 창을 최대화하게 되면 작업표시줄까지 덮어버리는 문제가 생긴다. 최대화 버튼을 클릭했을 때, 아래 코드를 사용해서 창을 최대화 시키면 이러한 문제가 발생하는데 Form.WindowState = FormWindowState.Maximized; 대략 두 가지 해결 방법이있다. 1. 직접 사이즈를 설정 말 그대로 폼의 사이즈를 직접 입력한다. 시스템속성을 통해서 WorkingArea를 조회 한 뒤에 해당 크기로 폼의 크기를 설정한다. 예제 코드는 아래 링크를 참조. http://www.devpia.com/MAEUL/Contents/Detail.aspx..
C# 윈폼 프로그래밍에서 사용자가 지정한 마지막 창 크기 및 위치 같은 정보를 저장하기 위해서 간단하게 ini 파일을 사용하기로 결정했다. winapi에는 이러한 기능을 하는 간단한 api가 있지만 C#에서 기본으로 제공하는 클래스에는 해당 기능을 하는 api가 없다. 하지만 해당 winapi를 import해서 사용할 수 있다. ※ 만약 신규로 프로젝트를 만드는 것이라면, Settings를 활용하자. 매우 편리하게 각종 설정항목을 저장할 수 있다. 사용방법도 정말 간편하다. 아래 유튜브 동영상 한 번 보면 바로 따라서 사용할 수 있다. ini 대신 아래 방법을 사용할 것을 적극 권장한다. 아래 링크에서 해당 api를 import해서 사용하는 클래스 예제를 확인할 수 있다. http://kindtis.ti..