aboutsummaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2019-03-09 11:02:31 +0000
committerRon Yorston <rmy@pobox.com>2019-03-09 11:02:31 +0000
commit8fcbe777412b301e5dddd4931b2e1016802141b8 (patch)
treebdad2a8f74c37d0af45fcf32db6acf4ee5624990 /win32
parent0f9bc90f097e2d3d4162757cd42941afb9358552 (diff)
downloadbusybox-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.c18
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
1580int 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}