我能否确定Matlab是否像在Windows中提升权限一样运行?

我想检测当前的Matlab会话是否以提升的权限运行(即用户在Windows下以“以pipe理员身份运行”启动它)。 理想情况下,解决scheme可以在XP和Windows 7上运行,但是如果有必要的话,我很高兴有两个解决scheme。

这个答案表明,我可以通过Matlab的.Net外部接口(至less在Vista和更高版本中)获得我需要的信息,但是我想知道是否有更“原生”的Matlab解决scheme。

“Matlab .NET Bridge”是用于从.NET调用Matlab的另一种方式。 从Matlab调用.NET类可以直接使用.NET外部接口支持来完成。

function out = isWindowsAdmin() %ISWINDOWSADMIN True if this user is in admin role. wi = System.Security.Principal.WindowsIdentity.GetCurrent(); wp = System.Security.Principal.WindowsPrincipal(wi); out = wp.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator); 

这应该适用于.NET安装的任何Windows版本。 更“原生”的方式可能需要编写一个MEX来调用win32 API函数,这将是更多的工作。 适用于我的XP机器。