2024年3月21日发(作者:)

NULL,

NULL,

TRUE,

CREATE_UNICODE_ENVIRONMENT | CREATE_BREAKAWAY_FROM_JOB,

NULL,

NULL,

si,

pi);

if (bRet) {

CloseHandle(pi->hProcess);

CloseHandle(pi->hThread);

}

} while (FALSE);

delete pi;

delete si;

delete[] path;

return bRet;

}

HANDLE GetUserHandle()

{

BOOL bRet = FALSE;

HANDLE hUser = NULL;

HANDLE hToken = NULL;

DWORD sessionId = 0;

do {

sessionId = WTSGetActiveConsoleSessionId();

if (sessionId == NULL) {

break;

}

if (!WTSQueryUserToken(sessionId, &hToken)) {

break;

}

if (!DuplicateTokenEx(hToken, MAXIMUM_ALLOWED, 0, SecurityDelegation, TokenPrimary, &hUser)) {

break;

}

} while (FALSE);

if(hToken != NULL){

CloseHandle(hToken);

}

return hUser;

}