2012-03-16 2 views
-1

UAC 실드를 올려야합니다. 인터넷상의 코드를 찾았습니다.IsAdmin()을 사용하여 UAC 실드 늘리기

MyBase.OnLoad(e) 
If Not IsAdmin() Then 
     AddShield(Me.elevateButton) 
End If 

그러나 작동하지 않습니다. "IsAdmin()이 선언되지 않았습니다"라는 IsAdmin() 오류를 반환합니다. 어떻게 사용할 수 있는지 그리고 UAC 방패를 올릴 수있는 방법을 알려주십시오.

감사

+0

[여기] (http://wyday.com/blog/2009/using-shield-icons-uac-and-process-elevation-in-csharp-vb-net-on-windows-2000-xp-vista) -and-7 /)는 달성하고자하는 목표에 대한 지침입니다. – nik

답변

0

이 오류는 기본적으로는이 함수의 정의를 찾을 수 없음을 나타내는한다. 이 함수가 .NET Framework의 일부라면 함수가 속한 네임 스페이스를 결정해야합니다. 알고 있다면, Imports을 사용하여 이름 공간을 "가져 오거나"함수 이름 (이름 공간 포함)을 사용할 수 있습니다. 예를 들어 Imports을 사용하지 않고 .NET File 객체에 액세스하려면 File의 전체 이름 (System.IO.File)을 사용해야합니다.

그러나이 경우 IsAdmin은 .Net 프레임 워크의 일부가 아닙니다. 따라서 IsAdmin()을 정의하는 프로그래밍 코드를 제공해야합니다.

이름 공간에 관한 단락은 .NET 프레임 워크에만 적용되지 않습니다. 그것은 프로젝트에 대한 참조로 추가 된 외부 DLL을 포함하여 다른 것들에도 적용됩니다.

<DllImport("shell32.dll", EntryPoint:="IsUserAnAdmin")> _ 
Public Shared Function IsUserAnAdmin() As Boolean 
End Function 

그런 다음 당신은 그냥

If IsUserAnAdmin() = True Then.... 

실행할 수 있습니다 그리고 그것은 물론 고가의 권한으로 실행되고 있지 False를 반환합니다 :

0

는이 작업을 추가해야합니다.