'Windows Mobile'에 해당되는 글 4건

  1. 2009/03/11 글뻥 VS2008 Windows mobile 6 개발환경 구축 - 4 (5)
  2. 2009/03/10 글뻥 VS2008 Windows mobile 6 개발환경 구축 - 3 (2)
  3. 2009/03/04 글뻥 VS2008 Windows mobile 6 개발환경 구축 - 2 (2)
  4. 2009/02/04 글뻥 VS2008 Windows mobile 6 개발환경 구축 - 1 (8)

Link
1편/네트워크 연결하기-http://www.wolfpack.pe.kr/303
2편/Bluetooth사용하기-http://www.wolfpack.pe.kr/310
3편/모바일배포일반-http://www.wolfpack.pe.kr/314
4편/PC에서모바일배포-http://www.wolfpack.pe.kr/315

오늘 그냥 필받았다고 치고 원래는 다음주쯤에 해야할 배포 마지막을 밟아 보고자 한다.
지난번에 기본적인 원리까지 진행했는데 이제 구현할 차례이다.

1. PC 설치 프로젝트를 추가하자.
솔루션을 클릭하고 마우스 우클릭, 추가, 새프로젝트 클릭후에 위저드 화면에서 설치프로젝트로

사용자 삽입 이미지
2. 설치 프로젝트가 열렸다면 불필요한 폴더 다날리고 "응용 프로그램 폴더" 1개만 남겨 놓은뒤에 TestCAB이라는 폴더를 추가하자.
사용자 삽입 이미지
3. 우측 창을 클릭하여 TESTCAB 프로젝트 출력물을 추가하자.
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
4. 응용 프로그램 폴더의 속성중 설치될 폴더가 있다. 너무 기니 알맞게 자르도록 하자.
사용자 삽입 이미지

* 현재 상태는 DefaultLocation이 "C:\Program files\FunnyWorld"가 된다. PCSetup프로젝트의 속성에 manufacturer 설정이 FunnyWorld이기 때문이다.
사용자 삽입 이미지
5. 이제 레지스트리를 추가하자.
* PCSetup프로젝트를 클릭하고 마우스 우클릭, 보기, 레지스트리를 차례로 클릭한다.
사용자 삽입 이미지
* PCSetup에 대한 레지스트리를 추가하도록 하자.
사용자 삽입 이미지
* "VS2008 Windows mobile 6 개발환경 구축 - 3" 말미에 미리보았던 그 구조이다.
- 우클릭후에 새로만들기로 추가하되 레지스트리에 표현되는 종류는 다음과 같다.
문자열값 - REG_SZ
확장 가능한 문자열 값 - REG_EXPAND_SZ
이진값 - REG_BINARY
DWORD - REG_DWORD
이상 4가지 타잎이 지원된다. 하지만 레지스트리에서 사용하는 것은 총 5가지 타잎으로 "다중문자열값(REG_MULTI_SZ)"가 지원되지 않는것이 좀 흠이랄까?
"VS2008 Windows mobile 6 개발환경 구축 - 3"에서 REG_MULTI_SZ로 보인것은 REG_SZ 타입으로 설정하자.

6. 레지스트리 설정이 완료되고나면 이제 설치후 "CEAppMgr.exe"을 실행시켜 주는 녀석을 만들자.
먼저 솔루션에 콘솔 프로젝트를 추가하였다. 윈도우에서 실행되는 것이라면 다른것도 관계없다. 알아서 취향에 맞게 추가하기만 하자.
사용자 삽입 이미지
이제 코딩이다. CEAppMgr.exe가 어디에 있는지 알아야 하니 레지스트리를 뒤져서 실행하도록 짜보자.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Win32; //레지스트리 관련 필수 추가

namespace runner {     class Program     {         static void Main(string[] args)         {             //레지스트리에 접근하여 값을 가져온다.             string regPath = @"Software\Microsoft\Windows\CurrentVersion\App Paths\CEAppMgr.exe";             RegistryKey rgkey = Registry.LocalMachine.OpenSubKey(regPath, true);             Console.WriteLine(rgkey);             String rtnPath="";             foreach (string Val in rgkey.GetValueNames())                 rtnPath = rgkey.GetValue(Val).ToString();                         //가져온 경로대로 실행한다.             System.Diagnostics.Process ps = new System.Diagnostics.Process();             ps.StartInfo.FileName = @rtnPath;             ps.Start();         }     } }



7. 노가다는 이제 끝나간다. 다시 PC설치용 프로젝트로 이동해서 앞에서 만든 Runner 프로그램을 출력에 추가하고 사용자 작업에 추가해주자.
- runner 프로젝트의 출력을 추가했음
사용자 삽입 이미지
- PCSetup프로젝트의 사용자 지정작업 클릭
사용자 삽입 이미지
- 설치 단계에 runner의 기본출력을 지정하였다.
사용자 삽입 이미지

8. 이제 최종 설치한번 해보자.
- 간단하게 솔루션 탐색기에서 PCSetup 프로젝트 선택후 마우스 우클릭하면 설치할 수 있다.
사용자 삽입 이미지
- 설치하고 나서 원하는 대로 추가/제거 윈도우가 나타난다.
사용자 삽입 이미지

9. 실재 설치후 테스트
- TESTCAB를 선택하자.
사용자 삽입 이미지
- 응용 프로그램 다운로드 완료라고 뜨고 Windows Mobile Device에서는 열심히 설치중이다.
사용자 삽입 이미지
- 설치완료모습
사용자 삽입 이미지


이로써 기본 윈도우즈 모바일 개발환경 구축은 완료되었다.
추가적으로 필요한 부분은 SDK를 구매하는 것을 권한다. 그러나, 일반 범용 어플리케이션은 에뮬레이터로 충분히 나아가 Bluetooth까지 지원하며 PC에서 손쉽게 설치하는 방법까지 공개하였으니 어렵지 않을것이다. 본 윈도우즈 모바일 개발환경 구축 관련 글은 개인 저작물이며 누구나 퍼나를수 있다. 그러나, 허락없이 퍼나르거나 동영상으로 포맷그대로 전환하신 분도 계시다. 쓰지말라고 올리는 것도 아닌데 방명록에 쓰겠다는 멘트만이라도 남겨주면 어떨까?

다음에 또 다른 지식을 나눠보도록 하자.
2009/03/11 15:21 2009/03/11 15:21
Link
1편/네트워크 연결하기-http://www.wolfpack.pe.kr/303
2편/Bluetooth사용하기-http://www.wolfpack.pe.kr/310
3편/모바일배포일반-http://www.wolfpack.pe.kr/314
4편/PC에서모바일배포-http://www.wolfpack.pe.kr/315

이번에는 PC에서 Mobile로 만든 CAB파일을 설치하는 방법에 대해 알아보자.
일단 Windows Mobile 개발이 능숙한 사람을 대상으로하니 자질구래하게 프로그램 소스까지 올리지 않도록 하겠다.

단계는 다음과 같이 한다.
1. Windows Mobile 프로그램 제작
2. Windows Mobile 배포 패키징
3. Regedit로 레지스트리를 건드려 ActiveSync 설치목록에 뜨도록 만들기
4. ActiveSync 설치관리자로 설치하기

1. TestDeploy라는 프로젝트명으로 어플리케이션을 하나 만들었다.

사용자 삽입 이미지
2. 이제 CAB으로 싸자
   1) 솔루션에서 새프로젝트를 추가하자.
사용자 삽입 이미지
   2) TESTCAB이라는 이름으로 모바일 설치 프로젝트를 생성
사용자 삽입 이미지
   3) "프로그램 폴더" 추가
사용자 삽입 이미지
   4) 쓸데없는 폴더는 날리자.
사용자 삽입 이미지
   5) 응용 프로그램 폴더를 클릭하고 추가
사용자 삽입 이미지
사용자 삽입 이미지
   6) 프로그램 폴더에 바로가기를 생성하자.
       - 프로그램 폴더 클릭후에 오른쪽 창에서 마우스 우클릭
사용자 삽입 이미지
      - 응용 프로그램 폴더안의 TestDeploy의 기본 출력(활성)을 선택
사용자 삽입 이미지
       - 파일이 생성되면 "Shortcut to TestDeploy의 기본 출력(활성)"이라고 쓰여져 있는데 한글은
         Ansicode로 변환하는데 실패할 수 있으므로 영문으로 바꾸자."Shortcut to TestDeploy"로
         한글만 지웠다.
   7) 이제 설치파일에 기록될 작성자나 뭐 기타 등등을 고쳐주자.
사용자 삽입 이미지
   8) 솔루션 전체를 빌드하자.
사용자 삽입 이미지
   9) ActiveSync의 "탐색" 기능을 이용하여 생성된 CAB 파일을 Windows Mobile에 옮겨 놓자
사용자 삽입 이미지
    10) 옮겨 놓은 모습
사용자 삽입 이미지
   11) 실행하자.
사용자 삽입 이미지
   12) 프로그램 메뉴에 있는지 확인하고 실행하자.
        - 한글이 깨지는 문제는 Widnows Mobile Emulator가 영문버전이기때문임. 한글버전은 문제
           없음.
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
3. 이제 본격적인 PC를 통한 설치를 하기위해 사전 지식을 쌓아보자.
위에서 일련의 프로그램을 만들고 CAB으로 만들어 배포하는것을 해보았지만 문제는 이게 좀 귀찮다는 것이다. PC에서 Windows Mobile Device를 설치하는 기능이 있음에도 잘 안쓰니까 문제라고나 할까?

- ActiveSync의 프로그램 추가/제거 기능이 바로 그것이다.
사용자 삽입 이미지
- 프로그램 추가/제거를 클릭하면 설치할 수 있는 파일들이 뜬다.
사용자 삽입 이미지
이녀석들은 도대체 어디 있길레 이렇게 뜨는것일까? 시작>실행에서 "Regedit"를 실행하여 살펴보도록 하자.
결론부터 말하자면 여기에 존재한다.
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\AppMgr\Apps

어랏? 많이 보던 녀석들 아닌가?
사용자 삽입 이미지
다시말해 레지스트리에 등록만 해주면 ActiveSync의 기능을 추가/제거 기능을 이용할 수 있을듯 하다.
다음은 "Adobe FlashLite"를 클릭해서 내용을 발취한후 TESTCAB에 맞게 수정한 것이다.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services\AppMgr\Apps\TESTCAB] "AppName"="TESTCAB" "Description"="" "IconIndex"=dword:00000000 "InstallDir"="D:\\Work_Source\\TestDeploy\\TESTCAB\\Debug" "ListCabFiles"=hex(7):54,00,45,00,53,00,54,00,43,00,41,00,42,00,2e,00,43,00,41,\   00,42,00,00,00,00,00 "ListCpuTypes"=hex(7):30,00,00,00,00,00 "Provider"="FunnyWorld"


실재 레지스트리를 살펴본 모습은 이러하다.
사용자 삽입 이미지

이렇게 레지스트리를 고쳤을때 실재 파일의 위치만 정확하다면 다음과 같이 프로그램 추가/제거 윈도우에서 뜬다.
사용자 삽입 이미지

이제 하나만 더해보자.
TESTCAB를 프로그램 추가/제거에 넣었다고는 하나 저기능을 자동으로 띄우지 못한다면 불편한것은 여전하다. 짧게 다시 결론부터 이야기하자면 저녀석의 명칭은 "CEAppMgr.exe"이다.
(프로그램 추가/제거 윈도우를 활성화 한상태에서 윈도우 작업관리자를 띄워 놓고 이름순으로 정렬한뒤에 프로그램 추가/제거창을 닫으니 사라지는 프로세스가 바로 저 이름이었다.)
어디에 있는줄은 모르겠지만 암튼 CEAppMgr.exe를 실행하면 된다니 이 녀석도 레지스트리에서 찾아보자.


\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\CEAppMgr.exe



위의 경로에 기본값으로 박혀 있다는 것을 확인 가능하다.
* 내경우는 "C:\Program Files\Microsoft ActiveSync\CEAPPMGR.EXE"이었다.

다음에 Windows Setup을 통해 CAB파일을 특정장소에 보관하고 레지스트리를 조작한 후에 CEAppMgr.exe를 실행해보도록 하자.
2009/03/10 15:57 2009/03/10 15:57
Link
1편/네트워크 연결하기-http://www.wolfpack.pe.kr/303
2편/Bluetooth사용하기-http://www.wolfpack.pe.kr/310
3편/모바일배포일반-http://www.wolfpack.pe.kr/314
4편/PC에서모바일배포-http://www.wolfpack.pe.kr/315

기대도 하지 않았던 삼성 U70체험단 당첨에 이은 체험기 올리느라 Mobile 개발 환경 구축에 시간을 할애하지 못하였다.
이제 지난 이야기에 이어 2번째 Windows Mobile Emulator에서 Bluetooth 사용법을 알아보도록 하자.

먼저 http://code.google.com/p/bthmsdevemul/ 로 방문해서 Emulator에서 블루투스를 사용할 수 있도록 해주는 Driver를 받자.

0.94 파일은 여기에
압축파일이니 알아서 풀도록하고 이제부터가 중요하다.

1. XP기준으로 제어판>하드웨어 탭에서 장치관리자 클릭
사용자 삽입 이미지
2. Bluetooth 장치의 드라이버 속성 클릭
(본 그림에서 하단의 연한 파랑색의 Bluetooth 장치는 USB장치로 현재는 미장착중임)
사용자 삽입 이미지
3. 드라이버 업데이트 클릭
사용자 삽입 이미지
4. 목록 또는 특정 위치에서 설치로 다음 클릭
사용자 삽입 이미지
5. 검색안함, 설치할 드라이버를 직접 선택후 다음
사용자 삽입 이미지
6. 디스크 있음 클릭
사용자 삽입 이미지
7. 압축해제한 곳의 하위 폴더중 WINXP 선택. (Vista는 Vista32선택)
사용자 삽입 이미지
8. 드라이버가 "FreeBT USB Driver"로 잡히면 다음 클릭
사용자 삽입 이미지
9. 설치중
사용자 삽입 이미지
10. USB 드라이버로 설치완료
사용자 삽입 이미지

이제 진짜 작동하는지 확인할 차례
먼저 .cetool 파일을 실행할 수 있는 프로그램이 필요하다.
Microsoft.com의 Download에서 "Remote Tools Framework"으로 검색하면 금방 나옴
현재의 URL : http://www.microsoft.com/downloads/det ··· 0a6a76e4

다운로드후에 또한번의 설치를!
사용자 삽입 이미지
설치가 완료되면 다시 압축해제한곳으로 가서 "RTFx Plugin"으로 들어가 BthEmulManager.cetool 파일을 더블클릭하면 디바이스를 선택하라고 뜨는데 개발하는 환경에 맞는 해상도를 선택하자.
(Omnia는 6.1의 480*800으로 선택)
사용자 삽입 이미지
이제 모든 작업이 막바지다. 이렇게 띄우면 Bluetooth 통신이 가능한 Emulator가 실행된다.
사용자 삽입 이미지
요녀석을 그대로 띄워둔채로 Visual Studio 2008의 도구에 있는 "장치 에뮬레이터 관리자"를 실행해보자
사용자 삽입 이미지
장치 관리자에 활성화 되어 있다.
사용자 삽입 이미지
실재 Emulator에서 Bluetooth 장치들이 잡히는지 확인 해볼까?
Emulator의 설정(Setting)에서 블루투스의 새장치 추가를 통해 주변 장치를 검색해보았다.
사용자 삽입 이미지
결과는 성공. 추가로 Debug도 가능!
사용자 삽입 이미지

다음 포스팅은 PC에서 설치파일을 실행해 크래들에 연결된 모바일 장치에 설치를 어떻게 하면 할 수 있는지 확인해보자.
(주로 CAB파일을 옮겨다 놓고 하지만 .NET Compact Framwork 3.5와 같이 런타임을 따로 설치하는것은 짜증나는일. 걍 PC에 놓고 손쉽게 배포하는 법을 알아보자.)
2009/03/04 15:00 2009/03/04 15:00
Windows mobile 6는 사실 Core가 Mobile 5와 동일하다.
다시말해 기죽지 말자.
아무튼 Smart Phone개발하려면 환경구축이 중요한데 특히 옴니아(Omnia)폰과 같이 고가의 장비를 갖춰서 개발한다는 아닌것 같다.

본 포스팅은 이런 환경을 구축하는데 노력이상의 비용을 지불하지 않는 선에서 환경구축을 완료하는데 그 목적이 있다.

1편 - Emulator에 네트워크 어떻게 연결할까?
2편 - Bluetooth를 Emulation할 수 없을까?
3편 - 만들긴 만들었는데 어떻게 배포하지?

Link
1편/네트워크 연결하기-http://www.wolfpack.pe.kr/303
2편/Bluetooth사용하기-http://www.wolfpack.pe.kr/310
3편/모바일배포일반-http://www.wolfpack.pe.kr/314
4편/PC에서모바일배포-http://www.wolfpack.pe.kr/315

이렇게 3부에 걸쳐 Windows Mobile 6 기반의 어플개발환경구축에대해 주저리주저리 떠들어 보자.

준비물은 Visual studio 2008 Express 이상이면 되고
Omnia같이 해상도가 800*480정도 되는 놈은 미쿡 이미지만 지원하므로 따로 다운로드 받는다.
일단은 Windows mobile 6 SDK부터 다운로드 받자.
http://www.microsoft.com/downloads/det ··· ang%3Den
그리고 480 * 800 개발용 이미지는 여기서 더 받도록 하자.
http://www.microsoft.com/downloads/det ··· ang%3Den

다운로드후 설치는 자동으로 OK.

XP라면 Activesync 4.5를 설치하고 Vista라면 디바이스 센터를 업데이트 한다.
여기서는 Activesync로 진행하겠다.
Activesync를 실행한후 "파일>연결설정"을 클릭한다.
다음과 같은 설정창이 뜨면 "다음 중 한가지 연결 허용"을 체크하고 DMA를 추가해둔다.
사용자 삽입 이미지
나머지는 Visual Studio 2008의 몫이다.
VS2008을 실행한후에 "도구>장치 에뮬레이터 관리자"를 클릭하여 관리자를 실행한다.
사용자 삽입 이미지
관리자 실행후에 해당 이미지를 클릭하고 마우스 우클릭하면 메뉴가 뜨는데 여기서 "연결"을 선택하자.
사용자 삽입 이미지
연결을 클릭하면 자동으로 이미지가 활성화되고 Emulator가 작동하기 시작한다.
사용자 삽입 이미지
에뮬레이터가 실행되면 다시 관리자에서 이미지를 선택하고 마우스 우클릭하여 "크레들에 놓기"를 선택하자.
사용자 삽입 이미지
이제 가상으로 크레들에 놓은것처럼 작동되어 동기화를 시작하게된다.
(동기화 설정은 생략함. 왠만하면 동기화 설정은 모두 언체크하여 하지 않도록 하자.)
사용자 삽입 이미지
마지막으로 연결이 완료되었는지 확인하자.
사용자 삽입 이미지
인터넷이 제대로 작동하는지도 확인하자. 본인의 PC가 인터넷이 연결안되어 있으면 말짱꽝이니 조심해서 체크 바란다.
사용자 삽입 이미지

2009/02/04 13:04 2009/02/04 13:04