diff options
author | Ron Yorston <rmy@pobox.com> | 2019-03-09 11:02:31 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2019-03-09 11:02:31 +0000 |
commit | 8fcbe777412b301e5dddd4931b2e1016802141b8 (patch) | |
tree | bdad2a8f74c37d0af45fcf32db6acf4ee5624990 /win32 | |
parent | 0f9bc90f097e2d3d4162757cd42941afb9358552 (diff) | |
download | busybox-w32-8fcbe777412b301e5dddd4931b2e1016802141b8.tar.gz busybox-w32-8fcbe777412b301e5dddd4931b2e1016802141b8.tar.bz2 busybox-w32-8fcbe777412b301e5dddd4931b2e1016802141b8.zip |
win32: add a function to detect running with elevated privileges
Add is_admin() and use it to alter the command prompt in the line
editor when running with admin privileges.
Diffstat (limited to 'win32')
-rw-r--r-- | win32/mingw.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/win32/mingw.c b/win32/mingw.c index 44356d6b0..b50c1ecee 100644 --- a/win32/mingw.c +++ b/win32/mingw.c | |||
@@ -1576,3 +1576,21 @@ void hide_console(void) | |||
1576 | } | 1576 | } |
1577 | } | 1577 | } |
1578 | #endif | 1578 | #endif |
1579 | |||
1580 | int is_admin(void) | ||
1581 | { | ||
1582 | int ret = FALSE; | ||
1583 | HANDLE h; | ||
1584 | |||
1585 | if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &h)) { | ||
1586 | TOKEN_ELEVATION elevation; | ||
1587 | DWORD size = sizeof(TOKEN_ELEVATION); | ||
1588 | |||
1589 | if (GetTokenInformation(h, TokenElevation, &elevation, | ||
1590 | sizeof(elevation), &size)) { | ||
1591 | ret = elevation.TokenIsElevated; | ||
1592 | } | ||
1593 | CloseHandle(h); | ||
1594 | } | ||
1595 | return ret; | ||
1596 | } | ||