我怎么能决定我的应用程序是否在本地系统帐户下运行? 有没有一个简单的方法来做到这一点?
谢谢!
Docker工具箱 – 本地主机不工作
如何检测使用的字体缩放模式?
为什么.NET版本与两个具有相同目标框架版本的应用程序不同
在Winx64中使用Boost :: asio:我卡住了,需要弄清楚如何为x64构buildlibboost_system_xxxx.lib
感谢您的帮助,但我可能找到了一个方法。 不是最好的,我知道,但它的工作。
BOOL CheckIfRunningAsSYstem( VOID ) { DWORD i,dwSize = 0,dwResult = 0; HANDLE hToken; PTOKEN_USER Ptoken_User; // Open a handle to the access token for the calling process. if ( !OpenProcesstoken( GetCurrentProcess(),TOKEN_QUERY,&hToken ) ) { printf( "OpenProcesstoken Error %un",GetLastError() ); return FALSE; } // Call GetToken@R_433_4045@ion to get the buffer size. if ( !GetToken@R_433_4045@ion( hToken,TokenUser,NULL,dwSize,&dwSize ) ) { dwResult = GetLastError(); if ( dwResult != ERROR_INSUFFICIENT_BUFFER ) { printf( "GetToken@R_433_4045@ion Error %un",dwResult ); return FALSE; } } // Allocate the buffer. Ptoken_User = ( PTOKEN_USER )GlobalAlloc( GPTR,dwSize ); // Call GetToken@R_433_4045@ion again to get the group @R_433_4045@ion. if ( !GetToken@R_433_4045@ion( hToken,Ptoken_User,&dwSize ) ) { printf( "GetToken@R_433_4045@ion Error %un",GetLastError() ); return FALSE; } LPWSTR SID = NULL; if ( !ConvertSidToStringSidW( Ptoken_User->User.Sid,&SID ) ) { printf( "nConvertSidToStringSidW Failed. Error = %d",GetLastError() ); return FALSE; } else printf( "nConvertSidToStringSidW succeeded." ); if ( _wcsicmp( L"S-1-5-18",SID ) == 0 ) printf( "nRunning under SYstem" ); else printf( "nNOT running under SYstem" ); if ( Ptoken_User ) GlobalFree( Ptoken_User ); return TRUE; }//CheckIfRunningAsSYstem
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。