• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

'2011/07'에 해당되는 글 4건

  • 2011.07.20 사용자 정의 Windows Message ID 정의
  • 2011.07.19 Google Calendar 음력 기념일 입력기 제작시작.
  • 2011.07.08 Google Calendar API for .NET
  • 2011.07.08 Prezi 라는 프리젠테이션 도구.

사용자 정의 Windows Message ID 정의

기술자료/.NET 2011. 7. 20. 14:16

예전 Windows App을 API 기반의 C 로 만들거나, MFC로 만들 때, 각종 Event 처리를 위해, 독자적인 ID를 만들었다. 그런데, 미처 인식을 못한 것이, 어떤 ID를 사용해서 운영을 해야 겹치는 경우 없이 제대로 되는지 정하지 않고 임의대로 했다.

그 중 WM_USER 값이다.
WM_USER는 사용자가 정의해서 쓸 수 있는 ID 정도로만 인식하고 있었다. 이 값으로 시작해서 최대 0x7c00 까지 정의해서 쓸 수 있다. 10진수로 한다면, 1024 ~ 31744 까지 정의해서 쓸 수 있다. 그래서 예전에는 사용할 ID 값을 아래와 같이 정의하곤 했다.

#define WM_CUSTOMUPDATE WM_USER + 100

즉 1024 + 100 = 1124 를 WM_CUSTOMUPDATE 라는 이벤트 ID로 사용한다는 의미.
하지만, 내가 안 쓰더라도, 별도로 사용되는 컨트롤이나, 3th-Party의 컨트롤의 경우 저 이벤트를 사용하는 경우가 종종 있어 자칫 종종 겹치는 경우가 있었다. 그래서 위 처럼 + 100 정도가 아닌, 5000 정도로 팍팍 띄워서 정의하기도 했다.

그런데, 알고 보니, WM_APP 라는 값이 있었다. 이 값은 최소한 컨트롤 같은 곳에서 사용하지 않는 완전 App 개발자 용으로 남겨놓은 영역이라고 한다. 이 값은 0x8000 ~ 0xBFFF 값이다. 10진수로 한다면 32768 ~ 49151 으로 볼 수 있다.

이번에 C#으로 이것저것 만들다가, 결국 unmanaged code들을 짜게 되었는데, 이 때 Windows Message를 주로 핸들링 하게 되었는데, 이벤트 ID를 대충 대충 정해서 구현한 것 같았다. 가급적 저 ID 정의 Rule에 맞추어서 정의해야 할 것 같다.

이 내용은 아래 링크에서 참고해  정리했다.(EUC-KR 이여서, 일부 Web Browser에서 종종 깨져 보인다.)

http://winapi.co.kr/reference/Message/WM_USER.htm

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

Google Calendar 음력 기념일 입력기 제작시작.

잡글 2011. 7. 19. 10:18

만들고 싶은게 무척 많은데, 간단한 것 부터 출발하자는 생각으로 시작했다.

메인 아이디어는 Google Calendar의 기념일 관리도구를 하나 만들려고 한다.
다만, 음력으로 된 기념일을 등록/수정/삭제가 가능한 도구이라는 것.

전에 ical 파일을 만들어 이 파일을 Google Calendar에 등록하는 방법이 있어 해봤다.
원리는 음력의 기념일을 기준으로 매년 양력일자를 ical 내에 미리 넣어주는 방법.
그래서 해당 양력일자의 일정을 Google Calendar에 우겨 넣는 것이다.

다 좋은데, 문제는 일정 수정이나 삭제할 때, 우겨 넣은 모든 일정을 일일히 찾아 지워야 한다는 점이다.

예를 들어 음력 6월 1일이라고 하면, 그에 맞는 양력 일자를 2011년, 2012년, 2013년... 2020년 양력 날짜가 쫙 생긴다. 11년에서 20년까지면 무려 9개. 그 9개의 날짜가 조금만 틀려도 매년 달력으로 넘어가서 수정/삭제를 해줘야 한다.
기념일이 한 개정도면 귀찮아서 그렇지 그냥 그냥 하면 되지만, 이게 20개 정도만 되면, 슬슬 머리가 아파오기 시작한다.

그래서 이것을 Windows 기반의 어플리케이션으로 만들어 관리하려고 한다. 그리고 그 관리도구를 만들기 위한 장소를 네이버 개발자에 넣었고, 네이버 개발자 사이트에서 제공하는 SVN에 등록하려고 한다.

사이트는 http://dev.naver.com/projects/googlecalendarm 이며, 틈 나는 대로 적용하려고 한다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

Google Calendar API for .NET

기술자료/Web 2011. 7. 8. 17:22

Google 에서 제공되는 서비스들은 거의 대부분 API를 제공하고 있다.
ATOM - 우리가 보통 말하는 SOAP과 같은 형태로 규격화된 XML로 구성된 형태와 JavaScript에서 쓰기 편한 JSON 형태들, 결과값도 다양한 형태로 제공한다.
(우리나라 포털은 이런 것과는 전혀 반대로 가고 있다. 뭐 다음이나, 네이버에는 개발자 들이 많으니, 외부 개발자들이 끼어들 필요가 없어서 그런듯... 애플 앱스토어 같은 성공 모델도, 이들에게는 큰 감흥이 없는 것 같다.)

이 중 Google Calendar 값을 가져와서 편집하려는 .NET 기반 툴을 만들려고 생각 중이였다.

 http://code.google.com/apis/calendar/data/2.0/developers_guide_protocol.html

난 맨처음 ATOM 기반의 데이터를 보았기 때문에, XMLDocument Reader로 읽어서 원하는 값들을 뽑으려고 했다.
하지만, 내용이 너무 방대하고 많아서 이 내용들을 정리할 생각에 뒷목이 뻣뻣함이 느껴졌는데,
알고보니까, 언어별로 이미 패키지화 해버렸다.
패키지는 다음 URL에서 받으면 된다.

http://code.google.com/p/google-gdata/downloads/list

MSI 파일로 설치를 하면 기본 경로로 C:\Program Files\Google\Google Data API SDK 위치에 설치된다.
Calendar 뿐만 아니라, Google 에서 제공하는 각종 기능들을 다룰 때 사용하는 대부분의 기능들을 담은 패키지를 제공한다.

그 중 완벽 정리된, .NET 코드로 작성하는 방법은 아래의 URL에서 참고하면 된다.

http://code.google.com/apis/calendar/data/2.0/developers_guide_dotnet.html

거의 완벽 정리. ( 문제는 언어 장벽! ㅠ.ㅠ )

각종 Open API 기반 서비스는 Google 기반으로 동작하게 할 수 밖에 없을 것 같다.
다음도, 네이버도 결국 이런 서비스를 제공하는 것은 요원한 일이 될테니..

구글 서비스나 잘 구성해서 써야 겠다.

 

Google Calendar 내용을 모두 열어 보는 코드를 간단하게 짜보면 아래와 같다.


Google.GData.Client.GDataCredentials m_credential 
= new Google.GData.Client.GDataCredentials("구글아이디", "구글암호");

Google.GData.Calendar.CalendarService svc = new Google.GData.Calendar.CalendarService("지금 만들고 있는 프로그램의 이름");
svc.Credentials = m_credential;

Google.GData.Calendar.EventQuery query
= new Google.GData.Calendar.EventQuery(http://www.google.com/calendar/feeds/default/private/full);

query.StartDate = DateTime.MinValue;
query.EndDate = DateTime.MaxValue;
Google.GData.Calendar.EventFeed feed = svc.Query(query);

foreach (Google.GData.Calendar.EventEntry entry in feed.Entries)
{
     if (entry.Times.Count > 0)
     {
            entry.Times[0].AllDay;  // 종일 이벤트인지?
            entry.Times[0].StartTime;  // 시작일
            entry.Times[0].EndTime;   // 종료일
      }
      entry.Title.Text; // 이벤트 제목
}

저 코드면 맨 마지막에 나오는 값들로 표시를 하거나 정리를 할 수 있게 된다.

그런데 특이한 점은 일정에서 날짜와 시간이 반드시 들어갈 줄 알았는데, 알고 보니까,
외부에서 파일을 import 해서 넣은 일정들은 저 entry.Times 값이 없는 경우가 있다.
그래서 entry.Times 에서 갯수를 파악한 뒤 내용을 꺼냈다.  - 주의가 필요 -

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

Prezi 라는 프리젠테이션 도구.

잡글 2011. 7. 8. 12:15

어제 우연히 웹 검색을 하다가, Gsong's Blog에 방문하게 되었는데, 아주 재미있는 포스팅을 보았다.

URL은 http://www.gsong.pe.kr/wp/?p=3959 인데, 제목이 SFE Prezi sildes 라는 포스팅.

시나리오 기반 개발이라는 내용의 프리젠테이션인데, Play 버튼을 클릭하면(한번 누르면 계속 진행되는게 아니고, 계속 눌러줘야 한다.) 이야기가 시작되는데, 자신이 원하는 포인트에 줌인 하고, 이동할 때는 줌 아웃하다가, 다음 위치에서 줌인 되는 스타일.

말로 설명을 하면 좀 이상하긴 한데, 뭔가 역동적인 슬라이드라고나 할까?

image

기반은 Flash 기반으로 되어 있다.

http://prezi.com/ dp 에 가면 나오는데, 여기서 자신의 슬라이드를 그릴 수 있다.

나중에 내 생각을 이런 곳에다 그려보는것도 즐거울듯.

무료로 사용하면, 이 Prezi 슬라이드 파일이 무조건 공개되고, 해당 파일은 반드시 Prezi 서버에 저장된다. 그것도 100Mb 한도로.

나중에 Professional 서비스를 신청하면, 오프라인 버전도 쓸 수 있다는데.. 모르겠다.

잘 쓸 수나 있는지 체크해보고. 생각해 봐야 할듯.

예제 Prezi 가 아래와 같다.

About perspective... on Prezi

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

  • «
  • 1
  • »
250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2011/07   »
일 월 화 수 목 금 토
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

Buscuit 친구 협업 moss Azure 지름신 블로그 SharePoint 불만 개발환경 java 매뉴얼 Visual Studio 좀 2010 e-book me2sms twi2me WSS windows me2dayzm me2photo 수 비스킷 Tutorial MOSS 2007 인터파크 것 오류 Google Apps Engine

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바