Inne zapisanie kodu sprawdzającego uprawnienia

Inne zapisanie kodu sprawdzającego uprawnienia
  • Rejestracja: dni
  • Ostatnio: dni
0

Jak by można zapisać ten kod z standardowego pliku nagłówkowego zamiast importowania funkcji z biblioteki dynamicznej

Kopiuj
#include <fstream>
#include <Shlobj.h>

int main()
{
	typedef BOOL(*PIsUserAnAdmin)();
	PIsUserAnAdmin pointer = reinterpret_cast<PIsUserAnAdmin>
		(GetProcAddress(LoadLibrary("shell32.dll"),"IsUserAnAdmin"));
	printf("%i",static_cast<bool>(pointer()));
}
mwl4
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 404
0

Linkujesz Shell32.lib w opcjach projektu (jeśli korzystasz z Visual Studio). I wtedy po prostu używasz IsUserAnAdmin zdefiniowanego w Shlobj.h mając nadzieję, że linker powiąże wszystko.

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
1

tymi reinterpret_cast i static_cast tylko sobie kod zaśmiecasz, zwykły cast jest czytelniejszy a działa w tym przypadku bez zarzutu.

  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki za rady znalazłem znacznie prostszy sposób

Kopiuj
#include <windows.h>
#include <winternl.h>
#include <fstream>

EXTERN_C NTSTATUS NTAPI RtlAdjustPrivilege(ULONG, BOOLEAN, BOOLEAN, PBOOLEAN);
int main()
{
     printf("%i",NT_SUCCESS(RtlAdjustPrivilege(20, TRUE, FALSE, &bl)));
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.