![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сервисы и HKEY_CURRENT_USER. и FindWindow [Win2k]
bar © (2004-09-28 15:12:00)Уважаемые мастера. Я в первый раз написал сервис для Win200 и у меня возникла такая проблема.
Во первых не могу записать значение в ветку HKEY_CURRENT_USER реестра. Почему это происходит я кажется знаю: (сервис запускается не от имени тукущего пользователя и поэтому ветка HKEY_CURRENT_USER ему не доступна. )
Прав ли я и скажите пожалуйста как всё таки записать значение в HKEY_CURRENT_USER из сервиса.
И второе почему после выполнения
hwnd := FindWindow('Shell_traywnd','');
в сервисе hwnd не меняется и остается равно 0?
Всем кто даст полезые сопеты заранее спасибо.
bar (2004-10-05 10:20:00) [1]>>Cobalt
Мы немного отошли от Delphi.
Насчет домена. Уговорю учителя поставить Win2000 server. Тогда и буду домены настраивать.
Cobalt (2004-10-05 00:28:00) [2]Решение - Домен.
Все локальные пользователи запрещены, есть только пользователь домена "Ученик". Ему назначаешь права - и вперёд.
Игорь Шевченко (2004-10-04 14:50:00) [3]
> И решить её средствами делфи, по моему, проще, чем ручками
> настраивать политики на каждой машине и учить ещё этому
> учителя информатики.
Я сильно сомневаюсь, что проще. Впрочем - удачи :)
bar (2004-10-04 13:45:00) [4]>>Игорь Шевченко ©
>>Нужно читать про Policy
Вы как всегда лаконичны.
Администрируя сетку (Win2k server + win2k(штук 10) + win98(штуки 3)) я собственно говоря так и делал, но в данном случае смсадмина в этой школе вообще нет, (я там только практику прохожу), а проблема есть.
И решить её средствами делфи, по моему, проще, чем ручками настраивать политики на каждой машине и учить ещё этому учителя информатики.
Игорь Шевченко (2004-10-04 12:08:00) [5]
> А что бы заблокировать диспетчер задач, смену пароля и т.д.
> нужно писать в HKEY_CURRENT_USER.
Нужно читать про Policy
bar (2004-10-04 10:05:00) [6]>>Cobalt ©
Пишу програмку для школы, которая должна блокировать компьютеры учеников по команде с учительского компа и выводить на них только определённую информацию (если получится выводить на экран ученического компа изображение с экрана учительского).
Поскольку детки очень любопытныее, и закроют это приложение, то я решил сделать его сервисом (можно было, конечно скрыть моё приложегние от Диспетчера Задач, но это более геморойно).
А что бы заблокировать диспетчер задач, смену пароля и т.д. нужно писать в HKEY_CURRENT_USER. Вот такая проблема
Cobalt (2004-09-29 22:48:00) [7]2 bar (29.09.04 13:58) [9]
Нет, не зная пароль пользователя - нельзя запускать программы от его имени - это безопасность.
Даже"система" не может.
Если работаешь от пользователя - то нафига тебе сервис, скажи пожалуйста?
bar (2004-09-29 13:58:00) [8]Ничего не получается в DELPHI.
Пробовал из сервиса запускать процесс с правами пользователя, но что то не работает.
Нашел инфу про CreateProcessWithLogonW, так эта функция даже не прописана в windows.pas (не любит борланд новые ф-ции Winapi)/
Кроме того для CreateProcessWithLogonW нужен пароль.
А как узнать пароль у текущего USER`а я не знаю (можно конечно самого юзеря спросить :) )
Неужели никто не знает как запусть процесс с правами пользователя, что бы он при этом имел доступ к его HKEY_CURRENT_USER.
А то придется извращатся. Делать хук и если он подключается к explorer`у то из длл-ки и работать с HKEY_CURRENT_USER. Но это уже будет на С т.к. в delphi нет расшаренных переменных.
Всем кто поможет - большой СПАСИБО.
Игорь Шевченко (2004-09-29 09:59:00) [9]bar (29.09.04 08:32) [7]
> - обычный user, осуществивший LogOn в систему. Мне нужно
> менять некоторые его личные настройки.
ImpersonateLoggedOnUser ?
bar (2004-09-29 08:32:00) [10]>>VMcL ©
И что это значит в коде на Delphi?
>>Игорь Шевченко ©
CURRENT_USER
- обычный user, осуществивший LogOn в систему. Мне нужно менять некоторые его личные настройки.
Игорь Шевченко (2004-09-28 17:39:00) [11]bar (28.09.04 16:45) [4]
> скажите пожалуйста как всё таки записать значение в HKEY_CURRENT_USER
> из сервиса.
А кто есть CURRENT_USER ?
VMcL (2004-09-28 17:03:00) [12]>> bar (28.09.04 16:45) [4]
> скажите пожалуйста как всё таки записать значение в HKEY_CURRENT_USER из сервиса.
Если не ошибаюсь, то нужно произвести имперсонификацию.
bar (2004-09-28 16:45:00) [13]>>Разреши сервису взаимодействие с рабочим столом.
нашел где это делается в Win2000 в службах.
скажите пожалуйста как всё таки записать значение в HKEY_CURRENT_USER из сервиса.
bar (2004-09-28 16:27:00) [14]>>Игорь Шевченко
Как???
Дайте код пожалуйста.
Игорь Шевченко (2004-09-28 16:02:00) [15]
> hwnd := FindWindow('Shell_traywnd','');
> в сервисе hwnd не меняется и остается равно 0?
Разреши сервису взаимодействие с рабочим столом.
Дмитрий Ботвин (2004-09-28 15:39:00) [16]Синтаксис: hwnd := FindWindow('Shell_traywnd',<Заголовок окна>);