원레 UrlEncode는 HttpUtility을 참조하면 됩니다. System.Web.HttpUtility; 그런데 컨트롤점해도 인텔리전스가 나오질 않더군요 ㅡ,.ㅡ; 이럴때는 수동으로 추가해야 하는데....어라? 어라? 어라라? 원래 System.Web라는 항목을 추가해야 하는데....없습니다? 으잌? 이유는 모르겠지만 WPF에서 이런경우가 좀 있습니다-_-;;; 여튼 System.Web.HttpUtility를 수동으로 추가 해야하는데 위치는 C:\Windows\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll 여기입니다. C:\Windows\assembly\GAC_32\System.Web\ 이 경로까지는 똑같지만 이후 폴더의 이름..
웹브라우저를 윈폼에서 띄울때 많이 사용하는 것이 WebBrowser컨트롤입니다. 우리의 웹브라우저 컨트롤 짜응~ 이거 하나만 뚝딱뚝딱해도 허접한 브라우저 하나 많들수 있습니다 ㅡ.-;; 여튼 WebBrowser에 들어가있는 많은 것들을 프로그램에서 컨트롤할수 있으므로 웹과 조화를 이루어야 할때(?)도 사용하게 됩니다 0.페이지 출력 일단 테스트를 하려면 WebBrowser에 빈패이지라도 출력되어 있어야 합니다. 간단하게 로컬 test.html 하나 만들어서 하시면 되겠습니다. WebBrowser에 페이지를 띄우려면 Navigate를 이용하시면 되겠습니다. //WebBrowser webHide = new WebBrowser(); //테스트페이지 오픈 webHide.Navigate(new Uri("http:..
닷넷에서 ipconfig 정보를 가져오는 방법은 몇가지 있긴합니다만 눈에 떡하니 보이는 명령프롬프트에서 ipconfig한 내용을 가져오는 방법을 알려 드리겠습니다. 요 화면이죠. 1. Process로 ipconfig 실행하기 방법은 간단합니다. 명령프롬프트에서 ipconfig를 하면 "c:\windows\system32\ipconfig.exe" 가 실행 됩니다. 그러니 우리는 Process를 이용하여 "c:\windows\system32\ipconfig.exe"를 실행하면 됩니다. ProcessStartInfo psInfo = new ProcessStartInfo(); psInfo.FileName = @"c:\windows\system32\ipconfig.exe";//실행파일 psInfo.UseShell..
C++에 함수 콜백이 있다면 C#에는 이벤트가 있죠. 이벤트라는 것은 특정 행위가 일어났을 때 이것을 외부로 알리기 위한 도구입니다. 0. 이벤트 사용 설마 이 글을 읽으면서 아직도 이벤트 연결을 못 하는 사람이 있을 거라는 생각은 하지 않지만....그래도 모르니 ㅎㅎㅎ //이벤트 연결 this.insSkype.OpenCompleteEvent += new claSkype.OpenCompleteEventHandler(insSkype_OpenCompleteEvent); ... ... void insSkype_OpenCompleteEvent(object sender, claSkype.OpenCompleteEventArgs e) { MessageBox.Show(e.Temp.ToString()); } +=을 하는..
이 글에서는 스카이프 api를 이용하여 채팅, 전화 걸기, 전화 받기 할 것입니다. api만 이용하여 스카이프를 컨트롤하기 위해서는 클라이언트가 로그인되어 있어야 합니다. C#에서 스카이프를 사용하기 위해서는 재공된 Skype4COM.dll를 마샬링 해주어야 하는데...... 이미 누군가가 해논게 있습니다. ㅋ 코드 플랙스 - Skype for VisualStudio 이곳에서는 비주얼 스튜디오 SDK를 이용하여 스카이프 프로젝트를 생성할 수 있게 되어 있지만 굳이 그렇게까지 쓸 필요는 없고 'SKYPE4COMLib'만 유징 해서 사용하시면 됩니다. 0. UI 구성 저는 wpf 프로젝트로 하겠습니다만.... C#프로젝트라면 별 상관은 없습니다. (레이아웃 코드만 다를 뿐이니까요 ㅎㅎㅎ) 전역변수로 스카이프..
C# 클래스 라이브러리를 COM+에 등록해보겠습니다. 참고 : 마이크로 소프트 고객센터 - HOWTO: Visual C# .NET에서 서비스 대상 .NET 구성 요소 만들기 Com을 쓰던 Com+를 쓰던 어떻게 쓰는지는 자유이고 나같은 경우 클라이언트 프로그램에서 직접 DB에 접근하지 못하게 하려고 많이 씁니다. 웹참조도 비슷한 용도로 사용할수 있습니다. 웹의 경우 TCP/IP를 이용하여 따로 서버프로그램만들어 DB를 날려주는 프로그램을 만들어 쓰는 회사도 보았을 정도로 DB에 직접접근을 막는건 여러므로 좋습니다. 물론 저도 예전에는 멋모르고 그냥 서버프로그램 만들어 썼는데 Com+를 만나고나서는 Com+ 를 많이 이용하다가 요즘은 웹서비스를 많이 이용하고 있습니다. 따로 서버프로그램을 만드는거에 비해 ..
닷넷에서는 DB를 어떤 것으로 불러오든 기본적으로 'SqlDataReader'라고 보시는 것이 맞습니다. 리턴값은 다르지만 데이터리더(DataReader)로 읽어 들인 후 나머지 작업(한 줄만 뽑아 문자열로 리턴한다던가 하는 작업)이 가능하니까요. 문제는 'SqlDataReader'라는 녀석은 테이블의 스키마 정보나 데이터를 다 가지고 있지만 가공 안 한체로 들어있어서 그냥 사용하기에는 여러 가지로 번거롭습니다. 그래서 보통은 'List'나 'DataSet'으로 변환하여 사용하죠. 'List'로 변환하는 방법은 한가지뿐이 없습니다. 직접 반복문을 이용하여 바인딩하는 것입니다. 'DataSet'이나 'DataTable'의 경우 두 가지 방법이 있습니다. 'List'와 같이 직접 바인딩하거나 'SqlData..
왜 케랙타는 있는데 스트링은 없는거냐!! 라는 생각을 여전이 합니다만.... 그런것과 상관없이 잘만들어서 쓰고 있으니 ㅎㅎㅎ 아래 맨위에 칸에 숫자와 문자를 넣고 입력을 누르면 결과를 보실수 있습니다. private bool IsNumeric(string value) { foreach (char cData in value) { if (false == Char.IsNumber(cData)) { return false; } } return true; } 코드를 보시면 아시겠지만 string는 c++로 보자면 char[]입니다. 스트링은 가변 캐랙타가 되는거저. 그래서 스트링으로 선언되있는 문자열은 배열로 접근이 가능합니다. 가끔 스트링에서 특정위치의 값을 꺼낼때 서브스트링같은 방법으로 꺼내는 사람들이 있는데..
바코드를 찍어주는 프로그램을 만든 적이 있습니다. GDI+로 출력을 했었습니다. 문제의 발견 그런데 바코드 특성상 숫자들을 검은색과 하얀색으로 구분하여 수십 또는 수백의 라인을 그려주어야 하다 보니 화면이 매번 화면을 다시 그리면 깜박거림에 딜래이까지 생겼습니다. '이걸 메모리에 따로 저장했다가 뿌려줘야 되는 건가?' 하고 있던 중 더블 버퍼링이란걸 알게 되었습니다. 더블 버퍼링(DoubleBuffer)이란? GDI+로 그린 그림을 자동으로 메모리에 실어놓고 필요할 때 자동으로 뿌려주는 기능입니다. 물론 그림을 다시 그리면 알아서 업데이트까지 해주죠. 문제는 메모리 더 먹는 다는거 ㅎㅎㅎ 사용하기 윈폼이라면 'InitializeComponent();' 밑에 SetStyle(ControlStyles.Use..
VS2005의 버그인지는 몰라도 '소스 코드가 원래 버전과 다릅니다'라면서 중단점이 무시되는 경우가 있습니다. 원래 이 오류는 런을 하고 코드를 수정했을 경우 흔이 볼수 잇는 오류입니다만 2005에서는 버그인듯 합니다. '소스코드와 달라도 중단점적용'옵션을 통해 멈추게는 할수있으나 코드가 다르니 그닥 소용은-_-;;; 이런경우 해당 에러가나는 파일을 메모장등으로 열어서 유니코드로 저장하면 정상적으로 동작합니다. 당연한거겠지만 아스키코드쓰는데서 그 파일만 깨지는수도 있으니 조심!! p.s. 당연이 이 후버전에서는 일반적으로 컴파일안하고 런했을때 볼수 있습니다. 한마디로 잘 수정됬다는 소리 ㅎㅎㅎㅎ