2010-01-18 3 views
1

바탕 화면 (또는 다른 폴더)에서 여러 파일을 선택하고 이름을 내 응용 프로그램에 전달하고 싶습니다.선택한 모든 파일 이름을 C# 응용 프로그램에 전달하는 방법은 무엇입니까?

더 구체적으로 말해, jpeg 파일을 마우스 오른쪽 버튼으로 클릭 할 때 실제로 내 응용 프로그램을 실행하는 새로운 "변환"옵션이 표시되는 것처럼 레지스트리에 키를 추가했습니다. 질문은 선택한 파일 이름을 모두 응용 프로그램에 전달하는 방법입니다.

고맙습니다.

+0

감사합니다. 나는 이것을 기억하려고 노력할 것이다 :) –

답변

9

창문을 통과해야합니다. 시작시 응용 프로그램에 전달 된 명령 줄 인수를 확인하십시오. 즉. Main 함수에서 string [] args 매개 변수가 있습니다.

는 설명하기 :

static void Main(string[] args) 
{ 
    if (args.Length == 0) 
    { 
     Console.WriteLine("Program called without arguments"); 
    } 
    else 
    { 
     Console.WriteLine("Program received this arguments:"); 
     foreach (string arg in args) 
     { 
      Console.WriteLine("\t{0}", arg); 
     } 
    } 

    // .. do other stuff 
} 
+2

그러나 Windows는 모든 선택된 파일에 대해 별도의 프로세스를 시작한다. –

+0

그러면 선택한 파일이 Windows에서 자동으로 내 응용 프로그램에 전달됩니다. 자동으로 생성 된 Main() 메서드에 "args"매개 변수가없는 또 다른 문제는 static void Main() {...}입니다. 새 Windows Forms 응용 프로그램 프로젝트를 시작할 때 Visual Studio에서 만들어졌습니다. –

+0

@divo 멋진 댓글. 그래서 나는 그가 실행중인 애플 리케이션의 여러 인스턴스를 방지 뭔가가 필요하다고 생각, 맞습니까? –

0

를이 앱은 이미 드래그/드롭 형 작업을 통해 예를 들어 같은 실행되는 동안하고 싶은 일이 있으면 당신을 수 있도록 몇 가지 API 호출이 있습니다 Shell 개체로 끌어서 놓기 작업을 수행 할 수 있습니다.

조회/google IDragSourceHelper, IDropTargetHelper, IDataObject 등

관련 문제