프로그래밍 방식으로 메일투 프로토콜에 Windows 프로그램 등록하기
메일주소:` 링크가 내 프로그램에 등록되도록 하려면 어떻게 해야 하나요?
그러면 프로그램에서 해당 이벤트를 어떻게 처리하나요?
Google 검색을 통해 찾은 대부분의 솔루션은 이 작업을 수동으로 수행하는 방법이지만 내 프로그램 사용자가 '기본 이메일 클라이언트로 설정'과 같은 버튼을 클릭하면 자동으로 이 작업을 수행해야 합니다.
편집:
답변이 사용자의 언어와 무관하므로 델파이에 대한 참조를 삭제했습니다.
37
3
*@Dillie-O: 귀하의 답변 덕분에 올바른 방향으로 나아갈 수 있었고(레지스트리만 변경하는 것으로 예상했어야 했는데) 이 문제를 해결했습니다. 하지만 이 작업을 하면서 찾은 몇 가지 추가 정보를 넣을 예정이므로 이것을 답변으로 표시하겠습니다.
이 질문에 대한 해결책은 Windows 레지스트리 설정을 수정할 수 있는 방법만 있다면 어떤 프로그래밍 언어를 사용하든 상관없습니다.
마지막으로 여기에 답이 있다:
"프로그램의 실행 파일" & "%1&"로 변경합니다;
"프로그램의 실행 파일" & "%1&"로 변경합니다;
1은 전체 메일 주소 URL로 대체됩니다. 예를 들어, 링크가 주어집니다:
다음이 실행됩니다: 프로그램의 실행 파일 &" mailto:user@example.com"
업데이트 (쉘스케이프의 코멘트를 통해):
Windows 8부터는 이 방법이 더 이상 예상대로 작동하지 않습니다. Win8은 선택한 앱의 ProgID가 해시되어 위조할 수 없는 HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\URLAssociations\MAILTO\UserChoice 키를 강제 적용합니다. 매우 까다로운 작업입니다.
내가 본 바로는 기본 메일 클라이언트를 설정하는 몇 가지 레지스트리 키가 있다. 그중 하나가
시스템 키:
[HKEY_CLASSES_ROOT\mailto\shell\open\command]
값 이름:
(기본값)
데이터 유형:
REG_SZ
(문자열 값)값 데이터:
메일 프로그램 명령줄
.저는
델파이 7
에 익숙하지 않지만, 이 값을 수정하는 데 사용할 수 있는 레지스트리 편집 라이브러리가 있을 것입니다.어떤 곳은 이 키보다 더 많은 것을 나열하고 다른 곳은 이 키만 나열하므로 적절한 것을 찾으려면 약간의 테스트가 필요할 수 있습니다.
다음은 기본 메일 클라이언트를 프로그래밍 방식으로 변경하는 공식 Microsoft 솔루션입니다. 비주얼 베이직이지만 이걸로 개념이 명확해지길 바랍니다:
http://support.microsoft.com/kb/299853