Проверка прав пользователя на C++
Unit1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit4.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm4 *Form4;
//---------------------------------------------------------------------------
// Начало проверки прав прользователя
bool _fastcall (AdminOrUser) (void) //Создаем функцию AdminOrUser
{
typedef HRESULT (WINAPI *ADMINUSER) (void);
ADMINUSER AdminUser; // Объявляем переменную
HANDLE cShell32; //Наш неопределенный тип данных
bool tt = False; //Булевое значение tt Fail
cShell32 = LoadLibrary ( TEXT("SHELL32.DLL")); //Загружаем файл SHELL32.DLL
if (cShell32)
{
AdminUser = (ADMINUSER)
GetProcAddress((HINSTANCE) cShell32, (LPCSTR) 680); //Читаем
tt = AdminUser();
FreeLibrary ((HINSTANCE) cShell32); //Выгружаем файл SHELL32.DLL
}
return (tt) ;
}
// Конец проверки прав пользователя
__fastcall TForm4::TForm4(TComponent* Owner)
: TForm(Owner)
{
if (AdminOrUser()) //Достаем из функции AdminOrUser наши данные и проверяем условием
{
Label1->Caption = L"Администратор";
}
else
{
Label1->Caption = L"Обычный пользователь";
}
}
//---------------------------------------------------------------------------
Unit1.h
//---------------------------------------------------------------------------
#ifndef Unit4H
#define Unit4H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
//---------------------------------------------------------------------------
class TForm4 : public TForm
{
__published: // IDE-managed Components
TLabel *Label1;
private: // User declarations
public: // User declarations
__fastcall TForm4(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm4 *Form4;
//---------------------------------------------------------------------------
#endif