2014-03-25 3 views
0

최근에 레지스트리에 액세스하는 Visual Studio 2013을 사용하여 시작 파일에 실행 파일을 추가 할 수있는 프로그램을 만들었습니다.응용 프로그램 레지스트리 액세스 문제

'System.Security.SecurityException'형식의 처리되지 않은 예외가 mscorlib.dll에서

추가 정보를 발생 : 메소드/동작 오류를 포함하는 명령을 나타낸다 클릭하면 문제가 요청한 레지스트리 액세스는 허용되지 않습니다.

코드는 내부에 : 레지스트리의 특정 부분에 쓰기 위해

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles btnAdd.Click 
     Dim regKey As Microsoft.Win32.RegistryKey 
     Dim keyName As String = txtKeyName.Text 
     Dim keyValue As String = txtPath.Text 

     regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True) 

     If (regKey.GetValue(keyName)) = Nothing Then 
      MsgBox("No value found") 
      regKey.SetValue(keyName, keyValue, Microsoft.Win32.RegistryValueKind.String) 
      MsgBox("Key " & keyName & " Has been Created") 
     Else 
      MsgBox("This Program already exists", vbInformation, "Information") 

     End If 
+0

읽기 또는 쓰기 중에 SecurityException이 발생합니까? –

+0

SecurityException이 발생합니다. >> regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey ("Software \ Microsoft \ Windows \ CurrentVersion \ Run", True) –

+0

Imho가 HKLM에 글을 쓰려면 관리자 선행이 필요합니다. 관리자 권한으로 응용 프로그램을 실행 해 보았습니까 (마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행)? – Jens

답변

0

, 당신은 창에서 권한을 상승해야합니다. 응용 프로그램에 높은 권한이 필요하도록하려면 프로젝트 속성 >> 응용 프로그램 >>보기 창 설정에서이 권한을 설정할 수 있습니다.

+0

2012 년을 사용하고 있지만이 점에서 2013 년이 훨씬 다르다고 나는 상상할 수 없습니다. – Steve

관련 문제