프로그래밍 방식으로 mailto 프로토콜을 사용하여 Windows 프로그램을 등록합니다.

StackOverflow https://stackoverflow.com/questions/231

  •  08-06-2019
  •  | 
  •  

문제

어떻게 하면 그렇게 만들 수 있나요? mailto: 링크가 내 프로그램에 등록되나요?

그러면 내 프로그램에서 해당 이벤트를 어떻게 처리합니까?

빠른 Google 검색에서 찾은 대부분의 솔루션은 이 작업을 수동으로 수행하는 방법이지만 내 프로그램 사용자가 "기본 이메일 클라이언트로 설정"과 같은 버튼을 클릭하면 이 작업을 자동으로 수행해야 합니다.

편집하다:

답변은 귀하의 언어와 무관하므로 Delphi에 대한 참조가 제거되었습니다.

도움이 되었습니까?

해결책

@딜리-O:귀하의 대답은 저를 올바른 방향으로 이끌었고(레지스트리 변경일 것으로 예상했어야 했습니다) 이 작업을 수행했습니다.하지만 이 작업을 하면서 발견한 몇 가지 추가 정보를 넣을 것이기 때문에 이것을 답변으로 표시하겠습니다.

이 질문에 대한 해결책은 Windows 레지스트리 설정을 수정할 수 있는 방법이 있는 한 어떤 프로그래밍 언어를 사용하고 있는지는 실제로 중요하지 않습니다.

마지막으로 대답은 다음과 같습니다.

  • 프로그램을 mailto 프로토콜과 연결하려면 모든 사용자들 컴퓨터에서 HKEY_CLASSES_ROOT\mailto\shell\open\command 기본값을 다음으로 변경합니다.
    "프로그램의 실행 파일" "%1"
  • 에게 프로그램을 mailto 프로토콜과 연결합니다. 현재 사용자, HKEY_CURRENT_USER\Software\Classes\mailto\shell\open\command 기본값을 다음으로 변경합니다.
    "프로그램의 실행 파일" "%1"

%1은(는) 전체 mailto URL로 대체됩니다.예를 들어, 다음 링크가 제공됩니다.

<a href="mailto:user@example.com">Email me</a>

다음이 실행됩니다:
"프로그램의 실행 파일" "mailto:user@example.com"

업데이트(shellscape의 주석을 통해):
Windows 8부터 이 방법은 더 이상 예상대로 작동하지 않습니다.Win8은 다음 키를 적용합니다.선택한 앱의 ProgID가 해시되어 위조될 수 없는 HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associati‌​ons\URLAssociations\‌​MAILTO\UserChoice.로얄 PITA 입니다

다른 팁

제가 본 바로는 기본 메일 클라이언트를 설정하는 몇 가지 레지스트리 키가 있습니다.그 중 하나는 다음과 같습니다.

시스템 키: [HKEY_CLASSES_ROOT\mailto\shell\open\command]

값 이름: (Default)

데이터 형식: REG_SZ (문자열 값)

값 데이터: Mail program command-line.

나는 익숙하지 않다 Delphi 7, 하지만 일부는 있을 거라고 확신해요 레지스트리 편집 라이브러리 거기에서 이 값을 수정하는 데 사용할 수 있습니다.

일부 장소에는 이보다 더 많은 내용이 나와 있습니다. 열쇠, 다른 키는 이 키이므로 적절한 키를 찾으려면 약간의 테스트가 필요할 수 있습니다.

기본 메일 클라이언트를 프로그래밍 방식으로 변경하는 공식 Microsoft 솔루션은 다음과 같습니다.Visual Basic이지만 다음에서 개념이 명확해지기를 바랍니다.

http://support.microsoft.com/kb/299853

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top