> Вот, доигрался ;-) > > Сегодня мучал WinNT десктопы и всё с ними связанное, > кое-что так и не понял... > Открыл текущий десктоп (в котором я влогинен), и прочитал > DACL, и вот что я увидел (операционка — WinXP): > > ACCESS_ALLOWED_ACE1: > SID=S-1-5-5-0-1802738 (это что за зверь такой, кто знает?
SID: S-1-5-5-X-Y
Name: Logon Session
Description: A logon session. The X and Y values for these SIDs are different for each session.
> LookUpAccountSID говорит, что идентификатору имя не > сопоставлено); > AccessMask=ALL_ACCESS. > > ACCESS_ALLOWED_ACE2: > SID=«ОГРАНИЧЕННЫЕ (NT AUTHORITY)» (во блин! кто знает > подробнее про этот SID, расскажите, плз.); > AccessMask=ALL_ACCES (в чём их ограничение, известно только > Б.Г. :-). > > ACCESS_ALLOWED_ACE3: > SID=«Administrators (BUILTIN)» > AccessMask= > DESKTOP_READOBJECTS | DESKTOP_CREATEWINDOW | > DESKTOP_CREATEMENU | > DESKTOP_ENUMERATE | DESKTOP_WRITEOBJECTS | > DESKTOP_SWITCHDESKTOP > Как видим, администраторы самые урезанные в правах на > десктоп. Не включены права DESKTOP_HOOKCONTROL, > DESKTOP_JOURNALRECORD, DESKTOP_JOURNALPLAYBACK, что > странно... > > ACCESS_ALLOWED_ACE4: > SID=«SYSTEM - (NT AUTHORITY)» > AccessMask=ALL_ACCESS (ну, система, это понятно); > > Непонятны мне две вещи. Первое — загадочный SID (см. выше). > Второе — я полез ковырять объект десктопа из-за того, что > не смог прикрутить region к DesktopWindow. Вот этот > фрагмент не работает >
---
> Из чего я делаю вывод, что DesktopWindow это какое-то > «неполноценное» окно, или OS особым образом его защищает. У > кого какие мысли по этому поводу? Можно ли прикрутить > region к DesktopWindow? > Кстати, рулит этим окном CSRSS.EXE, может из-за того, что > он работает под LOCALSYSTEM, OS не даёт модифицировать его > окна? Хотя я запустил своё тестовое приложение под SrvAny > под Localsystem, там такая же песня... > > Заранее всем спасибо за советы. > >_______________________ > В великой мудрости великая печаль, и кто умножает познания, > умножает и скорбь... > (C) Экклезиаст — мудрый и печальный ;-)
Сегодня мучал WinNT десктопы и всё с ними связанное, кое-что так и не понял...
Открыл текущий десктоп (в котором я влогинен), и прочитал DACL, и вот что я увидел (операционка — WinXP):
ACCESS_ALLOWED_ACE1:
SID=S-1-5-5-0-1802738 (это что за зверь такой, кто знает? LookUpAccountSID говорит, что идентификатору имя не сопоставлено);
AccessMask=ALL_ACCESS.
ACCESS_ALLOWED_ACE2:
SID=«ОГРАНИЧЕННЫЕ (NT AUTHORITY)» (во блин! кто знает подробнее про этот SID, расскажите, плз.);
AccessMask=ALL_ACCES (в чём их ограничение, известно только Б.Г. :-).
ACCESS_ALLOWED_ACE3:
SID=«Administrators (BUILTIN)»
AccessMask=
DESKTOP_READOBJECTS | DESKTOP_CREATEWINDOW | DESKTOP_CREATEMENU |
DESKTOP_ENUMERATE | DESKTOP_WRITEOBJECTS | DESKTOP_SWITCHDESKTOP
Как видим, администраторы самые урезанные в правах на десктоп. Не включены права DESKTOP_HOOKCONTROL, DESKTOP_JOURNALRECORD, DESKTOP_JOURNALPLAYBACK, что странно...
ACCESS_ALLOWED_ACE4:
SID=«SYSTEM - (NT AUTHORITY)»
AccessMask=ALL_ACCESS (ну, система, это понятно);
Непонятны мне две вещи. Первое — загадочный SID (см. выше).
Второе — я полез ковырять объект десктопа из-за того, что не смог прикрутить region к DesktopWindow. Вот этот фрагмент не работает
procedure TForm1.Button1Click(Sender: TObject);
Var
aWnd: HWND;
aReg: HRGN;
begin
aReg := CreateEllipticRgn(0, 0, 1024, 768);
Win32Check(aReg <> 0);
Try
aWnd := GetDesktopWindow;
Win32Check(SetWindowRgn(aWnd, aReg, True) <> 0);
// ^^^^ Вот тут валится с ошибкой. SetWindowRgn возвращает 0,
// причём GetLastError = ERROR_SUCCESS.
Except
DeleteObject(aReg);
Raise;
End;
end;
---
Из чего я делаю вывод, что DesktopWindow это какое-то «неполноценное» окно, или OS особым образом его защищает. У кого какие мысли по этому поводу? Можно ли прикрутить region к DesktopWindow?
Кстати, рулит этим окном CSRSS.EXE, может из-за того, что он работает под LOCALSYSTEM, OS не даёт модифицировать его окна? Хотя я запустил своё тестовое приложение под SrvAny под Localsystem, там такая же песня...
Заранее всем спасибо за советы.
_________________________
В великой мудрости великая печаль, и кто умножает познания, умножает и скорбь...
(C) Экклезиаст — мудрый и печальный ;-)
> Вот, доигрался ;-) > > Сегодня мучал WinNT десктопы и всё с ними связанное, > кое-что так и не понял... > Открыл текущий десктоп (в котором я влогинен), и прочитал > DACL, и вот что я увидел (операционка — WinXP): > > ACCESS_ALLOWED_ACE1: > SID=S-1-5-5-0-1802738 (это что за зверь такой, кто знает?
SID: S-1-5-5-X-Y
Name: Logon Session
Description: A logon session. The X and Y values for these SIDs are different for each session.
> LookUpAccountSID говорит, что идентификатору имя не > сопоставлено); > AccessMask=ALL_ACCESS. > > ACCESS_ALLOWED_ACE2: > SID=«ОГРАНИЧЕННЫЕ (NT AUTHORITY)» (во блин! кто знает > подробнее про этот SID, расскажите, плз.); > AccessMask=ALL_ACCES (в чём их ограничение, известно только > Б.Г. :-). > > ACCESS_ALLOWED_ACE3: > SID=«Administrators (BUILTIN)» > AccessMask= > DESKTOP_READOBJECTS | DESKTOP_CREATEWINDOW | > DESKTOP_CREATEMENU | > DESKTOP_ENUMERATE | DESKTOP_WRITEOBJECTS | > DESKTOP_SWITCHDESKTOP > Как видим, администраторы самые урезанные в правах на > десктоп. Не включены права DESKTOP_HOOKCONTROL, > DESKTOP_JOURNALRECORD, DESKTOP_JOURNALPLAYBACK, что > странно... > > ACCESS_ALLOWED_ACE4: > SID=«SYSTEM - (NT AUTHORITY)» > AccessMask=ALL_ACCESS (ну, система, это понятно); > > Непонятны мне две вещи. Первое — загадочный SID (см. выше). > Второе — я полез ковырять объект десктопа из-за того, что > не смог прикрутить region к DesktopWindow. Вот этот > фрагмент не работает >
---
> Из чего я делаю вывод, что DesktopWindow это какое-то > «неполноценное» окно, или OS особым образом его защищает. У > кого какие мысли по этому поводу? Можно ли прикрутить > region к DesktopWindow? > Кстати, рулит этим окном CSRSS.EXE, может из-за того, что > он работает под LOCALSYSTEM, OS не даёт модифицировать его > окна? Хотя я запустил своё тестовое приложение под SrvAny > под Localsystem, там такая же песня... > > Заранее всем спасибо за советы. > >_______________________ > В великой мудрости великая печаль, и кто умножает познания, > умножает и скорбь... > (C) Экклезиаст — мудрый и печальный ;-)
[NT] Про session SID понятно, спасибо... Остался вопрос про то, как прикрутить регион к DesktopWindow :-(13.05.03 14:17 Автор: HandleX <Александр М.> Статус: The Elderman