2011-08-10 2 views

답변

0

다른 사용자의 의견과 함께 적절한 권한이있는 경우 데스크톱 응용 프로그램에서만이 작업을 수행 할 수 있습니다.

여기 (이 post에서) 시스템의 기본 브라우저를 찾기 위해 몇 가지 예제 코드입니다 :

private string getDefaultBrowser() 
{ 
    string browser = string.Empty; 
    RegistryKey key = null; 
    try 
    { 
     key = Registry.ClassesRoot.OpenSubKey(@"HTTP\shell\open\command", false); 

     //trim off quotes 
     browser = key.GetValue(null).ToString().ToLower().Replace("\"", ""); 
     if (!browser.EndsWith("exe")) 
     { 
      //get rid of everything after the ".exe" 
      browser = browser.Substring(0, browser.LastIndexOf(".exe")+4); 
     } 
    } 
    finally 
    { 
     if (key != null) key.Close(); 
    } 
    return browser; 
} 

그러나, 상황이 여기에서 까다로운. 브라우저마다 기본 위치를 저장하는 방법이 다릅니다.

예,

  • IE는 Profile 폴더에 prefs.js
  • 확실하지 않음 (코드를 통해 그것을 얻을이 post 체크 아웃)
  • FF 저장 (보통 HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer 아래) 레지스트리에 저장 할 수있다 Chrome 및 Safari에 대해

하지만 당신은 아이디어를 얻습니다. 최종 목표는 무엇

확실하지,하지만 UX 관점에서, 내가 할 수있는 가장 좋은 방법은 (다운로드 디렉토리를 지정 사용자에게 즉, 당신의 설정을 노출 에있을 거라고 생각하여 기본 다운로드 위치의 앱).

1

애쉬의 댓글을 확장하려면 - 웹 앱을 사용하는 경우에는 아니요. 데스크톱 앱인 경우 충분한 권한 (예 : 관리자로 실행)이있는 것 같습니다. 그러나 아마도 레지스트리에서 기본 브라우저를 찾아 각 인기있는 브라우저 나 작업하려는 모든 브라우저의 다운로드 폴더를 설정하는 방법을 알아야합니다.

+0

관리자 프로필이 필요합니다. 사용자 설정이 필요합니다. –

0

어디에서 찾으시겠습니까? "누군가가 우리 웹 사이트를 방문하고 ..."라는 뜻이라면 대답은 '아니오'입니다. 보안 컨텍스트에서 실행하는 것과 마찬가지입니다. 사용자가 폴더를 변경하도록 제안 할 수는 있지만 멈추었습니다.

웹 응용 프로그램이 아니라고 가정하면 옵션을 사용할 수 있습니다. 주 사용자 다운로드 디렉토리는 X의 키 {374DE290-123F-4565-9164-39C4925E467B} 아래에 있습니다. 그래, 그거 재미있을 것 같은데. 프로그래밍 방식은 hack the registry입니다. 그러나 사용자는 브라우저에서 특정 폴더를 지정할 수도 있습니다. 즉, 사용자가 어떤 브라우저를 사용하고 해킹하고 있는지 알아야하거나, 해킹을 시도 할 수 있습니다.

나쁜 소식은 사용자 컨텍스트에서 실행되는 응용 프로그램이 관리자 권한이없고 폴더를 변경하기 위해 레지스트리 키를 쓸어 버릴 수 있다는 것입니다.

관련 문제