Я не уверен, для чего Вы нуждаетесь в нем, и такие вещи всегда относительны (экран, окно, документ). Но когда я должен был понять это, я нашел этот сайт полезным: http://www.mattkruse.com/javascript/anchorposition/source.html
И я также нашел, что плагин подсказки, который кто-то сделал для jQuery, имел все виды интересного понимания к x, y располагающие приемы (посмотрите на его класс области просмотра и базовую поддержку, jQuery предусматривает его). http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
В проекте CodePlex UAChelper есть код, который проверяет повышение прав в UserAccountControl.cpp UserAccountControl :: IsUserAdmin
, который проверяет, включен ли UAC, а затем проверяет, повышен ли процесс.
bool UserAccountControl::IsCurrentProcessElevated::get()
{
return GetProcessTokenElevationType() == TokenElevationTypeFull; //elevated
}
из функции:
int UserAccountControl::GetProcessTokenElevationType()
{
HANDLE hToken;
try
{
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))
throw gcnew Win32Exception(GetLastError());
TOKEN_ELEVATION_TYPE elevationType;
DWORD dwSize;
if (!GetTokenInformation(hToken, TokenElevationType, &elevationType, sizeof(elevationType), &dwSize))
throw gcnew Win32Exception(GetLastError());
return elevationType;
}
finally
{
CloseHandle(hToken);
}
}
Использование TokenElevationType
будет работать, но если вы используете PInvoke CheckTokenMembership ()
для SID группы администраторов, ваш код также будет работать, когда UAC выключен и на 2000 / XP / 2003, а также будет обрабатывать запрещенные SID.
Существует также функция IsUserAnAdmin ()
, которая выполняет проверку CheckTokenMembership
за вас, но MSDN сообщает, что она может быть там не навсегда