몇 년 동안 ShellExecute() API를 사용하여 내 응용 프로그램 내에서 기본 웹 브라우저를 시작했습니다. 이와 같이 :Google 크롬이 ShellExecute()를 위반 했습니까?
ShellExecute(hwnd, _T("open"),
_T("http://www.winability.com/home/"),
NULL, NULL, SW_NORMAL);
Google이 Chrome 브라우저를 출시한지 2 주 전까지 만해도 괜찮 았습니다. 이제 컴퓨터에 Chrome이 설치된 경우 ShellExecute API는 더 이상 웹 페이지를 열지 않습니다.
이 문제를 해결하는 방법을 아직 알지 못했습니까? (Chrome을 감지하고 사용자에게 Chrome의 결함을 알리는 메시지가 표시되지 않는 경우)
편집 : Sergey에서 제공 한 코드가 작동하는 것처럼 보였으므로이를 "the"대답으로 받아 들였습니다. WinExec에 대한 호출이 마음에 들지 않는 것을 제외하면 MSDN은 WinExec이 16 비트 응용 프로그램과의 호환성을 위해서만 제공된다는 것을 읽습니다. IOW, 모든 서비스 팩 사용이 중단 될 수 있습니다. 시도하지는 않았지만 16 비트 응용 프로그램을 전혀 지원하지 않기 때문에 Windows x64에서 이미 작동이 중지 된 경우 놀랄 일은 아닙니다. 따라서 WinExec 대신 Sergey의 코드와 같은 레지스트리에서 가져온 경로와 인수로 URL을 사용하여 ShellExecute를 사용할 것입니다. 감사!
FWIW, 내 컴퓨터에서 Chrome이 기본 브라우저로 설정된 상태에서 완벽하게 작동합니다. 너는 * 고장난 기계에 다른 것이 설치되어 있는지보고 싶을 수도있다 ... – Shog9
내 컴퓨터에서는 작동하지 않지만, .htm 관련 응용 프로그램을 시작하는 트릭이 있으면 작동하기 때문에 나는 행복하다. 감사! –
WinExec은 실제로 현재 Windows afaik의 모든 방법으로 x64에 남아 있으며 테스트를 마쳤습니다. 나는 그들이 그것을 제거 할 좋은 이유가 있다고 생각하지 않습니다, 그래서 그것을 남겨 두었습니다. –