2012-12-21 4 views
1

Windows Mobile 6.1 장치에서 다른 응용 프로그램 뒤에 백그라운드 (파일 시스템 워처 포함)로 실행되는 응용 프로그램 (C#으로 작성)을 얻으려고합니다. 나는 간단한 파일 시스템 워처를 작성 했으므로, 현재 애플리케이션 (다른 프로그램을 열지 않은 한)만큼 훌륭하게 작동한다. 인스턴스로 돌아간 후에도 파일 시스템 워처는 더 이상 작동하지 않습니다. 그것의 OpenNETCF를 사용하여 .net cf doesnt는 파일 시스템 감시자를 포함합니다.응용 프로그램이 활성화되지 않은 경우 FileSystemWatcher가 실패 함

누구나 왜이 작동하지 않는지 알 수 있습니까?

모든 도움을 주시면 대단히 감사하겠습니다. 나는 당신이 그 동작을 얻을 것이라고 왜 확실하지 않다

private void Form1_Load(object sender, EventArgs e) 
    { 

     OpenNETCF.IO.FileSystemWatcher f = new OpenNETCF.IO.FileSystemWatcher(@"c:\happydays", "*.*"); 
     f.IncludeSubdirectories = true; 
     f.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | 
         NotifyFilters.FileName | NotifyFilters.DirectoryName; 

     f.Created += new FileSystemEventHandler(File_Created);         
     f.EnableRaisingEvents = true; 
    } 

    private void File_Created(object sender, OpenNETCF.IO.FileSystemEventArgs e) 
    { 
MessageBox.Show("File Created"); 
    } 

답변

2

,하지만 난 OS는 활성 응용 프로그램에 파일 알림 메시지를 발송되는 것을 짐작 할 수 있습니다

여기 내 코드입니다.

SDF의 FileSystemWatcher은 후드 아래 aygshell API를 사용하기 때문에 응용 프로그램 메시지 펌프에 의존하며, aygshell은 디스패치하기 위해 Windows 메시지를 사용합니다 (마이크로 소프트가 선택한 것이지 광산이 아닙니다). 여러 가지 이유로 그런 것을 좋아하지 않으므로 FileSystemMonitor이라는 대체 이름 공간과 DLL 및 FileSystemWatcher에서 찾을 수있는 대안을 작성했습니다. IIRC, 100 % 동일하지는 않지만 가능한 한 파일 시스템 API를 사용하여 만들었습니다.

+0

이것은 OpenNETCF에 있습니까? –

+0

예, 말했듯이, 그것은 FSW와 정확히 동일한 DLL과 네임 스페이스에 있습니다. – ctacke

+0

cf에 대한 서비스를 작성할 수 있습니까? –