summaryrefslogtreecommitdiffstats
path: root/xmrstak/misc/uac.hpp
diff options
context:
space:
mode:
authorpsychocrypt <psychocryptHPC@gmail.com>2017-12-22 09:35:42 +0100
committerGitHub <noreply@github.com>2017-12-22 09:35:42 +0100
commitbbba9467ad77f160295e3e38a91727952c66aa7d (patch)
treee86a6eb475ce874ce3bcfda82193031774f93c3d /xmrstak/misc/uac.hpp
parente99da8b68302a310644648e2864903a404fef9fe (diff)
parentc4391ac6f3239d81093449948d16b2233cacdb3f (diff)
downloadxmr-stak-bbba9467ad77f160295e3e38a91727952c66aa7d.zip
xmr-stak-bbba9467ad77f160295e3e38a91727952c66aa7d.tar.gz
Merge pull request #649 from fireice-uk/topic-fix-uac
Stop UAC popup for elevated ctx
Diffstat (limited to 'xmrstak/misc/uac.hpp')
-rw-r--r--xmrstak/misc/uac.hpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/xmrstak/misc/uac.hpp b/xmrstak/misc/uac.hpp
index fdf3be9..55c5f1a 100644
--- a/xmrstak/misc/uac.hpp
+++ b/xmrstak/misc/uac.hpp
@@ -1,4 +1,9 @@
#pragma once
+
+#ifdef _WIN32
+#include "xmrstak/misc/console.hpp"
+
+#include <string>
#include <windows.h>
BOOL IsElevated()
@@ -17,18 +22,18 @@ BOOL IsElevated()
return fRet;
}
-BOOL SelfElevate(const char* my_path)
+BOOL SelfElevate(const char* my_path, const std::string& params)
{
if (IsElevated())
return FALSE;
SHELLEXECUTEINFO shExecInfo = { 0 };
shExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
- shExecInfo.fMask = NULL;
+ shExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
shExecInfo.hwnd = NULL;
shExecInfo.lpVerb = "runas";
shExecInfo.lpFile = my_path;
- shExecInfo.lpParameters = NULL;
+ shExecInfo.lpParameters = params.c_str();
shExecInfo.lpDirectory = NULL;
shExecInfo.nShow = SW_SHOW;
shExecInfo.hInstApp = NULL;
@@ -36,9 +41,11 @@ BOOL SelfElevate(const char* my_path)
if (!ShellExecuteEx(&shExecInfo))
return FALSE;
- // Hide our window and loiter in the background to make scripting easier
- // ShowWindow(GetConsoleWindow(), SW_HIDE);
- // WaitForSingleObject(shExecInfo.hProcess, INFINITE);
+ // Loiter in the background to make scripting easier
+ printer::inst()->print_msg(L0, "This window has been opened because xmr-stak needed to run as administrator. It can be safely closed now.");
+ WaitForSingleObject(shExecInfo.hProcess, INFINITE);
+ std::exit(0);
return TRUE;
}
+#endif
OpenPOWER on IntegriCloud