2012-02-20 3 views
3

Delphi에서 EXE 파일의 오른쪽 클릭 메뉴에 추가 된 항목을 구현할 수 있는지 궁금합니다. 특히 Windows Service Application EXE는 아직 등록 또는 설치되지 않았으며 . 메뉴 옵션을 사용하면 EXE를 Windows 서비스로 설치/제거 할 수 있습니다. 이것이 가능한가? 그렇다면 어떻게? Windows Vista + 와만 호환되는 것이면 괜찮습니다.EXE 파일의 마우스 오른쪽 버튼 클릭 메뉴

  • 설치 (또는 제거)
  • 시작 (또는 정지)
+0

개별 파일은 윈도우 오른쪽 클릭 메뉴에 대한 정보를 선언하지 표시 할 수 있습니다. 특정 실행 파일에 대해이 작업을 수행하는 방법을 묻고 있습니까? – ardnew

+3

왜 downvote? 이것은 완전히 유효한 질문입니다. –

+0

@LeonardoHerrera 동의 - 아니요라는 대답으로 무언가가 가능한지 여부에 대한 질문은 그 답을 내려야한다는 것을 의미하지는 않습니다. –

답변

5

는 쉘 컨텍스트 메뉴 (Windows 탐색기에서 마우스 오른쪽 단추로 클릭하고 창)를 참조하는 경우, 당신은 할 수 없습니다. 모든 .exe 파일에 대해 표시되지만 개별 파일에는 표시되지 않도록 메뉴에 추가 할 수 있습니다.

모두 실행 파일에 대한 컨텍스트 메뉴 핸들러를 등록한 다음 처리해야하는지 여부를 확인하기 위해 전달 된 파일 이름을 필터링 할 수 있지만, 이는 수백 또는 수천 개의 실행 파일을 컴퓨터에서 실행하면 마우스 오른쪽 버튼으로 클릭 한 응용 프로그램의 가능성에 따라 필터가 실행됩니다.

가능한 해결 방법은 사용자 지정 확장명을 가진 파일을 서비스의 폴더에 넣고 대신 해당 파일의 상황에 맞는 메뉴 처리기를 추가하는 것입니다. 이 파일을 마우스 오른쪽 버튼으로 클릭하면 메뉴 항목이 적절한 명령 행 매개 변수로 서비스를 호출합니다.

(물론, 가장 좋은 방법은 그것을해야합니까 특별히 설계된 것입니다 서비스를 관리 할 수 ​​제어판의 서비스 애플릿을 사용하는 것입니다.)

+0

또한 컨텍스트 메뉴가 작동하기 전에 셸 확장을 설치해야합니다. 즉, 특정 파일의 설치 프로그램을 설치해야합니까? – martinstoeckli

+0

좋은 지적. 나는 그것이 나쁜 생각이라고 결정하기 훨씬 전에 그것을 통해 생각하는 것을 괴롭히지 않았다. :) –

+0

결국 결국 실제로 대답은 '예'지만 끔찍한 결과가 있기 때문에 실제로 대답은 많이 권장되지 않습니다. –

3
+1

아니에요. 특정 실행 파일의 컨텍스트 메뉴에 추가 할 수 없습니다. * 모든 * 실행 파일을 추가 할 수는 있지만 개별 실행 파일은 추가 할 수 없습니다. –

+0

나는 그것이 불가능하다고 생각하지 않는다. http://www.codeproject.com/Articles/441/The-Complete-Idiot-s-Guide-to-Writing-Shell-Extens이 기사에서 그것은 당신이 파일 이름. –

+2

예. 즉, 시스템에서 오른쪽 클릭 한 모든 실행 파일에 대해 내선 번호가 호출되고 필터가 실행되는 동안 시스템에 지연이 있음을 의미합니다. 어리석은 것을하는 것은 시스템 자원을 완전히 낭비하고 전체 시스템에 부정적인 영향을 미칩니다. 단일 파일에 대한 상황에 맞는 메뉴를 추가하는 실용적인 방법은 없습니다. 더 실제적인 해결책은 서비스의 폴더에 별도의 파일을 넣고 그 개별 파일의 확장을위한 핸들러를 등록하고 새로운 파일 확장자에 대한 핸들러로 서비스를 설정하는 것입니다. –

관련 문제