안녕하세요?
당나귀를 사용하다 보니 갑자기 궁금한점이 생겨서 문의 드립니다.
당나귀를 보면
ed2k:// 같이 자체 URL 프로토콜을 정의하여 쓰고 있습니다.
위
ed2k:// 에 대한 정의는 Windows 레지스트리에 정의하여 사용하는것은 알고 있습니다.
MSDN의 관련 예제를 보면 아래와 같이 등록해 주면 됩니다만..
[HKEY_CLASSES_ROOT]
[note]
(Default) = "URL:Note Protocol"
URL Protocol = ""
[DefaultIcon]
(Default) = "notepad.exe"
[shell]
[open]
[command]
(Default) = "c:\windows\notepad.exe %1"
제가 궁금한것은 저 방식을 사용할때
현재 해당 프로그램이 실행중이라면, 그 프로그램을 다시 띄우지 않고
현재 띄워져있는 프로그램에 어떻게 인자를 전달하느냐 입니다.
가령, 제가 레지스트리에 정의한 프로토콜이 test:// 라는 프로토콜이고
그 연결 프로그램은 [c:\gogogo.exe %1] 와 같이 정의했다고 했을때
test://testdata
와 같은 링크를 통해 사용자가 클릭을 했을 경우에 현재 해당 프로그램이
실행중이지 않다면 c:\gogogo.exe 를 실행하면서 첫번째 인자로 testdata 라는 문자열을
넘겨주게 되겠지요?
이 첫번째 실행에서 인자를 받아오는것은 ParamStr등의 변수를 이용하여
가져오는것은 알겠습니다.
그렇다면, 두번째 실행 명령이 전달됐을때
다시 gogogo.exe 를 띄우지 않고, 이미 실행중인 gogogo.exe 프로세스에
어떻게 인자를 넘겨주며, 또 넘겨줄수 있을 경우 gogogo.exe 프로세스에서는 어떤 이벤트로
받아와야 하는지 매우 궁금합니다.
이방식을 잘 이용하면, 폼 디자인시 HTML관련 컴포넌트를 사용하여
디자인 자체를 HTML로 할수도 있을것 같습니다.
바쁘시지 않다면 작은 조언 기다리고 있겠습니다.
감사합니다.