2010-09-24 16 views
7

Powiel możliwe:
Filetype association with application (C#)C# Windows 'Otwórz za pomocą>' zachowanie menu kontekstowego

Piszę aplikacji C# Windows do wizualizacji i edycji plików '.build' (nant skrypty). Chciałbym, aby użytkownik mógł kliknąć prawym przyciskiem myszy plik .build w Eksploratorze Windows i wybrać opcję "Otwórz za pomocą", aby zezwolić na modyfikację pliku w mojej aplikacji.

Czego potrzebuje mój program, aby móc pracować z tym mechanizmem? Co mój program może zrobić w systemie Windows, aby włączyć obsługę menu kontekstowego?

Zastanawiam się, czy ktoś może wskazać mi kierunek dobry artykuł/samouczek na ten temat.

+0

Zobacz http://stackoverflow.com/questions/222561/filetype-association-with-application-c –

Odpowiedz

4

Open Z polecenia właśnie przechodzi ścieżkę pliku jako pierwszy argument do zastosowania więc wszystko co musisz zrobić, to

public static void Main(string[] args) 
{ 
    if(args[0] != null) 
    { 
     //args[0] contans a path to the file do whatever you need to do to display it 
    } 
    else 
    { 
     //Start normally 
    } 
} 

Aby automatycznie umieścić swój program w otwartej z listy trzeba będzie dodaj klucze rejestru w HKEY_CLASSES_ROOT\YOUR_EXT\. Here is a SO answer mówiąc, jak to zrobić

Lub możesz po prostu dodać go ręcznie do otwartych z listą w normalny sposób.

2

Zobacz blog: Shell Extensions - Context Menu. Ma kod dla prostego "opakowania" do niektórych haków COM do menu kontekstowego powłoki Windows. Umieść go w GAC i po kliknięciu prawym przyciskiem myszy twoje menu zostanie włączone jako podmenu menu kontekstowego z kliknięciem prawym przyciskiem myszy.

Jeśli chodzi wyłącznie o użycie opcji "Otwórz za pomocą ...", aby aplikacja była wyświetlana TYLKO dla plików, które można otworzyć, jest to nieco łatwiejsze. Wśród nich są zarządzane przez system Windows przy użyciu kluczy rejestru w dwóch miejscach w rejestrze:

  1. HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .FileExtension \ OpenWithList (instalacja dla bieżącego użytkownika)
  2. HKEY_CLASSES_ROOT \ .FileExtension \ OpenWithList (instaluj dla wszystkich użytkowników)

Przyjrzyj się niektórym z istniejących za pomocą programu regedit, a następnie użyj klasy Registry, aby utworzyć nowy klucz dla wybranego rozszerzenia.

Powiązane problemy