実行しているプログラムが管理者権限「管理者として実行」されているかどうか確認するサンプルコードになります。
サンプルコードは上記参考記事リンクのコードそのままです。
一般ユーザで実行した時と、管理者として実行した時で表示されるメッセージが変わります。
本サンプルコードを使用したOSSを公開しています。
右クリックメニューに「日付フォルダの作成」が追加され本日日付のフォルダが作成されるフリーソフトとなります。
初回のみレジストリ登録が必要となるため、本サンプルコードと同様のロジックがあり、管理者として実行を促すメッセージを表示させています。
class Program
{
internal static void Main(string[] args)
{
if (IsAdministrator())
{
System.Windows.MessageBox.Show("管理者として実行されています。");
}
else
{
System.Windows.MessageBox.Show("管理者として実行されていません。");
}
}
public static bool IsAdministrator()
{
System.Security.Principal.WindowsIdentity identity
= System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal principal
= new System.Security.Principal.WindowsPrincipal(identity);
return principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator);
}
}
Module IsAdmin
Sub Main()
If IsAdministrator() Then
MsgBox("管理者として実行されています。")
Else
MsgBox("管理者として実行されていません。")
End If
End Sub
Function IsAdministrator() As Boolean
Dim identity As System.Security.Principal.WindowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent()
Dim principal As New System.Security.Principal.WindowsPrincipal(identity)
Return principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator)
End Function
End Module
以上、C#, Visual Basic によるプログラムが管理者として実行されているかどうか確認するサンプルコードでした。