안녕하세요.
바쁘신데도 불구하고 많은 질문에 답변주시고 도움주셔서 항상 감사드립니다.
많은 도움을 받고 있는 사람 가운데 1인입니다.
질문드리고 싶은 것은 웹에서 응용프로그램 바로 실행하는 것을 구현하고 있는데 브라우저에서 파라미터가 넘어오지 않는 문제가 있어서 글을 올리게 되었습니다.
이전에 웹에서 응용프로그램 바로 실행하기 관련 글이 있어서 읽어보기는 했지만 브라우저에 따라 파라미터가 넘어오지 않는 경우가 있는 것 같아서 질문드리게 되었습니다.
관련 소스코드는 이전 '응용프로그램 바로 실행하기'와 같고 웹에서 'TestWebGoexe://1234' 실행시 'TestWebGoexe://1234'를 파라미터로 받아야 하는데 실행파일명만 파라미터로 넘어옵니다.ㅜㅜ
string[] strArg = Environment.GetCommandLineArgs();
익스플로어에서는 정상적으로 파라미터가 넘어오지만 edge나 크롬 브라우저에서는 값이 넘어오지 않는데
이런 문제는 어떻게 해결할 수 있을까요?
RegistryKey v_key = Registry.ClassesRoot.OpenSubKey("TestWebGoexe", true);
if (v_key == null)
{
string exePath = typeof(Program).Assembly.Location;
string exeName = Path.GetFileName(exePath);
using (RegistryKey appKey = Registry.ClassesRoot.CreateSubKey(Key_AppUniqueName))
{
appKey.SetValue(null, "URL:Action SP Protocol");
appKey.SetValue(Key_URLProtocol, "");
using (RegistryKey defaultIconKey = appKey.CreateSubKey(Key_DefaultIcon))
{
defaultIconKey.SetValue(null, string.Format("{0},1", exeName));
}
using (RegistryKey shellKey = appKey.CreateSubKey(Key_Shell))
using (RegistryKey openKey = shellKey.CreateSubKey(Key_Open))
using (RegistryKey commandKey = openKey.CreateSubKey(Key_Command))
{
string value = string.Format("\"{0}\" \"%1\"", exePath);
commandKey.SetValue(null, value);
}
}
}
[최초 등록일: ]
[최종 수정일: 1/30/2019]