2013-01-18 9 views
5

Próbuję użyć metody Launcher.LaunchFileAsync() z przykładowym plikiem .txt i to nie działa - zawsze zwraca wartość false dla WordPada (który jest domyślnym programem w systemie Windows 8 do wyświetlania plików .txt)."Windows.System.Launcher" nie uruchamia programu WordPad

Jeśli jednak zmienię ustawienia obsługi .txt w Panelu sterowania na Notatnik lub Word wszystko działa poprawnie, LaunchFileAsync() zwraca wartość true, a plik zostanie wyświetlony poprawnie.

Jakieś pomysły, dlaczego tak się dzieje?

+0

Po prostu dzwonisz do 'Launcher.LaunchFileAsync (" MyFile.txt "')', prawda? Jesteś pewien, że WordPad jest domyślnym handler'em TXT? –

+0

To jest program obsługi kliknięć, który wywołuję: var picker = new FileOpenPicker(); picker.FileTypeFilter.Add (".txt"); var file = await picker.PickSingleFileAsync(); var success = czekaj na Launcher.LaunchFileAsync (plik); if (! Success) { txtBlock1.Text = "Nie można otworzyć pliku."; } WordPad jest domyślnym programem obsługi .txt na Windows 8, ale nie powinno to mieć znaczenia, ponieważ Launcher powinien uruchomić dowolną aplikację zarejestrowaną jako domyślną dla danego typu pliku. –

+0

Mogę potwierdzić to samo, co się ze mną dzieje. Niestety nie mam dla ciebie wytłumaczenia ani rozwiązania. –

Odpowiedz

0

Jeśli chcesz po prostu uruchomić aplikację na pulpicie, taką jak: Notatnik, WordPad, Internet Explorer itp., Przejdź do Process Methods i ProcessStartInfo Class.

try 
{ 
// Start the child process. 
    Process p = new Process(); 
    // Redirect the output stream of the child process. 
    p.StartInfo.UseShellExecute = false; 
    p.StartInfo.FileName = "C:\Path\To\App.exe"; 
    p.Start(); 
} 

// Uses the ProcessStartInfo class to start new processes, 
// both in a minimized mode. 

void OpenWithStartInfo() 
{ 
    ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe"); 
    startInfo.WindowStyle = ProcessWindowStyle.Minimized; 

    Process.Start(startInfo); 

    startInfo.Arguments = "www.northwindtraders.com"; 

    Process.Start(startInfo); 
} 
Powiązane problemy