Autor Wątek: Rejestr Windows - dostęp wysokopoziomowy | blokowanie funkcji systemu  (Przeczytany 2927 razy)

Offline komorra

  • Użytkownik
    • Blog naszego teamu (o grze Voxelfield)

# Grudzień 10, 2014, 10:40:32
Witam,

Docelowo chciałbym zablokować pewne funkcje systemu Windows 7 dla jednego z kont użytkowników, mianowicie:
- powinna działać jedna aplikacja na pełnym ekranie
- dostęp do paska zadań, eksploratora, menu start, klawiszy systemowych powinien być niedostępny
- jedyne co można zrobić to CTRL + ALT + DEL i przełączyć się na inne konto (np. admina, który ma wszystkie administracyjne uprawnienia)

Napisałem program w C++, lecz na różnych konfiguracjach różnie się zachowuje (pewnie różnice w rejestrze). Program modyfikuje wyżej wymienione sprawy za pomocą niskopoziomowych funkcji rejestru.

W związku z tym czy:
a) Są inne możliwości blokowania takich funkcji - jak tak to jakie?
b) Istnieje jakaś wysokopoziomowa biblioteka, która w sposób jednolity potrafi zarządzać rejestrem Windows (np. automatycznie rozpoznaje system, czy jest on 32/64 bitowy i które klucze ma zmieniać)?
c) Są jakieś gotowe programy (darmowe), które potrafią takie rzeczy?

Z góry dziękuję za pomoc.
« Ostatnia zmiana: Grudzień 10, 2014, 10:45:24 wysłana przez komorra »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Xirdus

  • Redaktor

# Grudzień 10, 2014, 10:56:31
Chodzi żeby z automatu to wykonać? Nie mam pojęcia. Ale ręcznie da się przez ustawienia zasad grupy (gpedit.msc) i podobne.

Możesz pokombinować z tzw. kiosk mode: http://www.howtogeek.com/173562/how-to-easily-put-a-windows-pc-into-kiosk-mode-with-assigned-access/.

Offline Interceptor

  • Użytkownik

# Grudzień 10, 2014, 11:16:22
Tworzyłem podobną aplikację emulującą system xp typu embedded na podobieństwo tego dostępnego w bankomatach za pomocą takich metod:
*blokada menu start i klawiszy specjalnych windows za pomocą hooka klawiatury
*blokada zmiany okien za pomocą hooka zmiany aktywności okna lub GetForegroundWindow w timerze i sprawdzania czy okno aplikacji jest aktywne i jeśli nie, to wymuszanie jego pokazywania
*okno aplikacji ze stylem "always on top"
*zamykanie na "siłę" okien menadżera procesów, edytora rejestru, linii komend(cmd) oraz okna "uruchom"
*jeśli aplikacja działa przy starcie windows, to uruchamiana jest z poziomu usługi ze zmienionym tokenem, który zabezpieczy aplikację przed zabiciem z poziomu menadżera procesów

Wszystko działa sprawnie w 100%, nie trzeba  bawić się w żadną zmianę zasad grupy.
« Ostatnia zmiana: Grudzień 10, 2014, 11:35:14 wysłana przez Interceptor »

Offline komorra

  • Użytkownik
    • Blog naszego teamu (o grze Voxelfield)

# Grudzień 10, 2014, 11:28:19
@Interceptor: I nie korzystałeś w ogóle z rejestru windows?

Offline Interceptor

  • Użytkownik

  • +1
# Grudzień 10, 2014, 11:29:56
Do rejestru dodawałem wyłącznie jeden wpis dla lokalnego użytkownika do poprawienia stabilności hooka klawiatury, ale nie był on wymagany.

Cytuj
b) Istnieje jakaś wysokopoziomowa biblioteka, która w sposób jednolity potrafi zarządzać rejestrem Windows (np. automatycznie rozpoznaje system, czy jest on 32/64 bitowy i które klucze ma zmieniać)?

wxWidgets, Qt
« Ostatnia zmiana: Grudzień 10, 2014, 11:38:48 wysłana przez Interceptor »

Offline komorra

  • Użytkownik
    • Blog naszego teamu (o grze Voxelfield)

# Grudzień 10, 2014, 12:19:36
Jeszcze też wyszukałem, że rejestr można edytować poleceniem systemowym "reg" podając różne parametry.

Offline Interceptor

  • Użytkownik

# Grudzień 10, 2014, 14:10:40
Zamiast polecenia "reg" lepiej użyć funkcji WinApi albo jakiś przyjaznych wrapperów z np. codeproject.

Dodam jeszcze, że modyfikując klucz lokalnego użytkownika, nie trzeba mieć uprawnień administratora i pomijany jest monit "UAC" o ile był włączony.