2014-06-11 5 views
5

C# 코드에서 편집 할 파일 (예 : 파일을 마우스 오른쪽 버튼으로 클릭하고 '열기'대신 '편집'을 선택)을 열려면 어떻게해야합니까? 'Open'과 동일한 의미로 Process.Start(<filename>)이 있지만이 경우 '편집'옵션이 필요합니다.코드에서 편집 할 파일 열기

더 쉬운 방법이 없다면 레지스트리에서 파일 형식과 관련된 '편집'작업을 검사하고 어떻게 든 해당 작업을 호출해야한다고 생각합니다. 그러나 확실하지 않습니다. 어디서 볼 것인지 또는 어떻게 그렇게 안정적으로 할 수 있는지.

누구나 최선의 방법을 알고 계십니까?

+0

어떤 프로그램 것은 당신이있는 '수정'을 기대하고있다 : 당신이 편집 동사는 관련 절차를 시작하기 전에 유효한지 확인하려면

var runFile = new ProcessStartInfo(pathToFile) {Verb = "edit"}; Process.Start(runFile); 

, 다음을 시도해 볼 수도 있습니다 , 파일 형식은 무엇입니까? – samuelesque

+0

그건 내 요점입니다. 잘 모르겠습니다. 사용자가 직접 편집하려고 시도하는 경우 얻을 수있는 모든 것. 나는 사용자의 PC에 무엇이 있는지에 대한 지식을 가질 수 없으며 메모장은 모든 경우에 적절하지 않을 수 있습니다. – Flynn1179

+0

복제본을 호평합니다. 이미지를 구체적으로 사용하지는 않지만 솔루션은 유효합니다. – Flynn1179

답변

6

모든 확장명이 인 경우ProcessStartInfo.Verb으로 수정되는 경우가 있지만 다음과 같은 경우에 도움이 될 수 있습니다.

public bool HasEdit() 
{ 
    var startInfo = new ProcessStartInfo(pathToFile); 
    return startInfo.Verbs.Any(verb => verb == "edit"); 
} 
+0

나는 여기 캐치에서 일반적인 "Open"절차를 사용하여 try/catch를하는 것으로 생각합니다. –

+0

네, 그 길로 갈 수도 있습니다. – samuelesque

+0

그래, 그게 내가 한거야. 나는 인정해야만한다. 대안이 있다면 예외를 잡는 것에 의지하지 않는 편이 좋다. 왜냐하면 내가 디버깅 할 때 비주얼 스튜디오가 내게 소리 쳤기 때문이다. – Flynn1179