2017-04-14 3 views
3

다음은 Windows 데스크톱 app.Where에서 작업을 시도한 단계입니다. FEATURE_BROWSER_EMULATION을 작성해야합니다. 어느 관리자 사용자를 위해 잘 작동하지만 레지스트리에 쓸 권리가없는 표준 사용자에게는 실패합니다.WPF C# - 표준 (비 특권) 사용자 용 앱 시작시 레지스트리를 변경하십시오.

1) 설치시 사용자에게 권한이 부여되도록 <requestedExecutionLevel level="highestAvailable" uiAccess="false" />을 설정했습니다.

스크립트를 생성하고 설치시이 스크립트로 인해 앱을 설치하지 못했습니다.

On Error Resume Next 
strComputer = "." 
Const HKEY_LOCAL_MACHINE = &H80000002 
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") 

Sub strLocalMachinePath1 = "SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION" 
objRegistry.OpenSubKey(HKEY_LOCAL_MACHINE, strLocalMachinePath1); 

If objRegistry.GetValue("MyApp.exe") Is Nothing Then 
    objRegistry.SetValue("MyApp.exe", 8000) 
End If 
If objRegistry.GetValue("MyApp.vshost.exe") Is Nothing Then 
    objRegistry.SetValue("MyApp.vshost.exe", 11000) 
End If 

End Sub 

2) 앱을 열고 관리자 암호를 매번 요청 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />을 시도했습니다. 관리자가 아닌 표준 사용자에게는 실패합니다. >App_Startup - -

3) 나는 App.xml.cs에서 동일한 쓰기 위해 노력했다>

key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Internet Explorer\Main", true); 
      key.CreateSubKey("FeatureControl"); 
      key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Internet Explorer\Main\FeatureControl", true); 
      key.CreateSubKey("FEATURE_BROWSER_EMULATION"); 
      key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true); 

그러나 차이가 없습니다 및 사용자가 권한이없는 경우 No Internet connection

var client = new WebClientPool().GetIdleWebClientObject() 

답변

2

의 오류를 시작합니다 특정 레지스트리 엔트리에 쓰십시오 - 당신이 당신의 어플리케이션을 위해 지정한 requestedExecutionLevel이 무엇이든간에 그는 그렇게 할 수 없습니다. requireAdministrator과 같은 것을 지정하면 시작할 때 UAC 프롬프트가 표시되어 관리 권한이있는 응용 프로그램을 실행하지만 사용자가 admin이 아닌 경우에는 도움이되지 않습니다. 이미, 질문의 3 점을 확인하시기 바랍니다 시도

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 
+0

: 대신 HKEY_LOCAL_MACHINE에 쓰는 당신이 레지스트리의 FEATURE_BROWSER_EMULATIONHKEY_CURRENT_USER의 일부를 쓸 수 있기 때문에

그러나이 경우 당신은 그 필요하지 않습니다. 이 경우 앱을 다시 시작하면 인터넷 연결을 허용하지 않습니다. 이것에 대한 해결 방법은 무엇입니까? – Heena

+0

@Heena 인터넷 연결은 어떻게 여기에서 관련이 있습니까? – Evk

+0

이유가 확실하지 않습니다. 하지만 On_Startup에서 인터넷 검사 코드를 사용했습니다. 이처럼 '(var client = new WebClient GetIdleWebClientObject())를 사용하는 경우 { (var stream = client.OpenRead ("http://www.google.com"))을 사용하는 경우 { return true; } } – Heena

관련 문제