본문 바로가기

IT . Web/스마트폰 . 모바일

C# 윈도 모바일 6 다른 프로세스 강제 종료

윈도 모바일이 구조적으로 다른(아이폰 등) 플랫폼보다 어쨌거나 더 선택의 폭이 있다고 할 수 있는 것이 여러 프로그램을 동시에 실행할 수 있다는 점입니다.

그런데 C#으로 윈도 모바일 애플리케이션을 개발할 때 .NET
Compact
Compact Framework는 아직 조금 아쉬운 면모를 보여줍니다.

System.Diagnostics.Process 클래스에 속한 메소드들도 기본 버전보다 Compact 버전에서 사용가능한 범위가 많이 줄어듭니다.

여튼 닷넷 프레임워크 3.5는 좀 낫겠지만 2.0에서라도 프로세스 관련 처리를 비롯한 다양한 작업에 대해 DLL 라이브러리를 제공해주는 좋은 곳이 있습니다.

OpenNETCF 라는 곳에서 제공하는 라이브러리[Smart Device Framework]인데, 무척 고맙게도 라이브러리 자체는 무료로 제공됩니다. 하지만 다른 추가 서비스를 제공받는 수준에 따라서 Standard와 Professional은 비용이 듭니다.

Download the Community Edition (Free) 를 눌러서 설치 파일을 다운받을 수 있고, 비주얼 스튜디오를 종료한 상태에서 설치를 마치면 C:\Program Files\Smart Device Framework 밑에 DLL 파일들이 생깁니다.

using OpenNETCF.ToolHelp;

// 클래스 선언 생략

OpenNETCF.ToolHelp.
ProcessEntry
ProcessEntry[] pe = ProcessEntry.GetProcesses();

if (pe != null)
{
foreach (ProcessEntry p in pe)
{
   if (p.ExeFile.ToLower().IndexOf("실행파일 이름(ex. notepad.exe)") > -1)
   {
p.Kill();
   }
}
}

ProcessEntry 클래스는 Compact 프레임워크가 제공하지 못하는 ExeFile 이라는 프로퍼티를 제공해줌으로써 개발자의 편의와 구현범위를 향상시켜줍니다.

int 형의 식별번호로만 Process에 접근할 수 있는 한계를 넘게 해주는 정말 고마운 라이브러리입니다. 이외에도 다양한 샘플이 포함되어있으니 윈도 모바일 개발을 시도하신다면 강력추천드립니다.

  • 구르밍 2010.04.23 17:12

    오늘 하루종일 찾던 자료입니다..감솨~..^^ 복받으세여
    compact framework에서 이정도는 기본으로
    제공해줘야되지 않나 생각되네여.. MS 왕짜증...ㅜ.ㅜ

    ※ 어쓰 미니가 나온줄은 모르고 있었는데..ㅎㅎ 무지 귀엽네영

    • One of Remnants 2010.04.23 19:00 신고

      반가워요.ㅎㅎ
      어스 미니? 음.. 구글 어스 미니가 있나? 난 모르는데... 이러다가;

      형광등 반짝;; 아 콜트 어스 미니 100 ㅋㅋㅋ 귀엽죠? 모두들 탐내는 악기^^