2012-09-03 8 views
0

Visual Basic 2010을 사용하여 C#에서 응용 프로그램을 코딩 했으므로 많은 학습을 거친 후 C#으로 약간의 경험을 했으므로 꽤 오래 동안 사용되었습니다. 사용자가 이미지 유형을 간단히 마우스 오른쪽 버튼으로 클릭 할 수있게하는 응용 프로그램의 경우 탐색기 컨텍스트 메뉴가 열리고 "웹 사이트에 업로드"라는 새 항목이 나타납니다. 이걸로, 내 응용 프로그램과 통신하고 (명령을 전달하여), WebClient UploadClass로 작성한 함수를 실행하고 싶습니다.탐색기 컨텍스트 메뉴

유일한 문제는 실제로 그렇게하는 방법입니다. 레지스트리 키 라우트를 내려 가고 싶습니다. 몇 가지 광범위한 연구를 해보았으며 쉘 및 타사와 비교해 보았습니다. 내가하려는 일에 가장 적합한 옵션입니다. C#에서 레지스트리 키를 설정하는 방법을 알고 있지만, 당황한 한가지는 레지스트리 키를 설정하는 것이고 내 응용 프로그램과 정확히 통신 할 수있는 방법입니다.

나는 올바른 방향으로 나아가는 것을보고 있으며 몇 가지 질문을해야합니다.

키를 실제로 설정하면 응용 프로그램이 저장된 위치는 어디입니까? 메뉴가 손상되거나 명령이 누락되지 않도록하려면 주 드라이브의 Program Files 폴더에서 응용 프로그램이 실제로 보이지 않고 Visual Studio 2010과 함께 제공되는 OneClick 설치 관리자를 사용하여 설치 파일을 찾습니다. 마지막으로

, 나는 통과하면 내 응용 프로그램, 예를 들어, 의견을 이해 할 수있는 방법 : 나는 내 응용 프로그램을 코딩 할 수있는 방법을

/u는 업로드 및 % 1 파일 위치에 대한 명령입니다
C:\MyDir\MyProgram.exe /u "%1 

, 그것이 명령했을 때 업로드 기능을 실행해야하는지 이해하고 있습니까?

도움이나 아이디어를 주시면 대단히 감사하겠습니다.

편집 : 나는 완벽하고 내가 레지스트리에 탐구 한 것들의 레지스트리 키 측면을 받고으로 찾고있다, 나는 단순히 나에게 무엇을 제공하기 위해 더 많은 공간을 제공으로 타사 응용 프로그램 설치 프로그램을 사용하기로 결정했습니다 내 프로젝트를 확장하는 등의 일을하고 싶습니다. 나는 이것을 수행하기 위해 컴파일러를 설정하는 Inno을 사용하고 있는데, 강력한 메뉴얼 툴을 통해 콘텍스트 메뉴에 사용할 수있는 레지스트리 값을 쉽게 설정할 수있다.

저는 현재 레지스트리를 이해하기가 어렵습니다. 첫째, 내 프로그램을 .png, .gif와 같은 파일 형식과 연관 시키려면 어떤 키를 설정해야합니까? 익스플로러 컨텍스트 메뉴에서 "Upload with SoftwareName"이라는 간단한 항목은 내가 한 것입니다.

감사합니다.

답변

1

사용하는 설치 프로그램이 무엇이든지간에 응용 프로그램이 설치 될 위치를 알 수 있고 이에 따라 레지스트리 값을 만들어야합니다. 커맨드 라인 인수에 관해서는 인수를 평가하고 각각의 함수를 호출해야합니다. 소개는 here을 참조하십시오.

+0

VS2010이 생성하는 "ClickOnce"응용 프로그램 중 하나이며 응용 프로그램이 설치된 위치와 설치된 위치를 직접 제어 할 수 없습니다. 사실, 사용자가 프로그램을 실행하는 데 필요한 요구 사항을 가지고 있다면 설치가 필요하지 않으므로 약간 혼란 스럽습니다. CLI의 인수에 감사드립니다. –

2

먼저 탐색기에 대한 새 컨텍스트 메뉴 항목을 만들어야합니다. 이것은 HKEY_CLASSES_ROOT에 레지스트리 키를 추가하여 응용 프로그램이 파일/폴더를 마우스 오른쪽 단추로 클릭 할 때 표시 할 파일에 따라 추가 할 수 있습니다. 예 : this을보십시오.

프로그램과 통신하는 경우 레지스트리에 설정하는 키는 질문에 표시된 형식이됩니다. 기본적으로/u 파일 이름 인수를 사용하여 프로그램을 엽니 다.응용 프로그램이 열릴 때 인수를 읽으려면 모든 시작 명령 행을 포함하는 Environment.GetCommandLineArgs()을 반복해야합니다. 그런 다음 이들이 무엇인지에 따라 원하는 방법을 실행할 수 있습니다.

+0

고맙습니다 두 링크를 모두 보게 될 것입니다. –