![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| Sfdef |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 20.11.2010 Репутация: нет Всего: нет |
Добавляю задание в планировщик. Чтобы процесс проходил в фоне (не мешал юзеру), добавляю от его имени нового пользователя. Во-вторых, чтобы не зависеть от пароля текущего пользователя (которого порой вообще не бывает).
Собственно поэтому и возник вопрос - как программно создать новую учётную запись? |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
||||
|
||||
| Sfdef |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 20.11.2010 Репутация: нет Всего: нет |
Спасибо, НО:
1) NetUserAdd помогает завести новую учётку, и даже эта запись создаётся скрытой - что, в принципе, и нужно! Однако, если вопрос с "окончанием срока действия учётной записи" (созданной с помощью этой функции) я решить смог, то с правами... А толку от учётки, под которой ничего нельзя делать? 2) С помощью консоли "доделываю" за NetUserAdd, однако - это как-то несерьёзно получается: заводим учётку из Delphi, а шлефуем консолью (пусть даже с помощью ShellExecute, но SW_HIDE для консоли не работают, и начинают всплывать различные окна). Так что - вопрос решён? В принципе - да. Но если Вы знаете - как в процедуре с NetUserAdd прописать этого пользователя в группу админов, - расскажите! |
|||
|
||||
| kami |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
В NetUserAdd - никак, судя по первоисточнику. Смотрю по структуре USER_INFO_1, как самой простой: usri1_priv DWORD
итого - при создании нужно делать обычного пользователя. Далее - либо через netUserGetInfo, либо через NetUserEnum получаем структуру, меняем что нужно, и - NetUserSetInfo. Не забываем про NetApiBufferFree в конце. Завтра попробую набросать рабочий пример, если будет время... |
||||
|
|||||
| Sfdef |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 20.11.2010 Репутация: нет Всего: нет |
kami, я был бы Вам крайне признателен! Если примеров использования NetUserAdd в сети я нашёл достаточно, то по NetUserSetInfo только справочные материалы. Delphi функцию NetUserSetInfo не знает, и, по-аналогии с NetUserAdd, нужно наверно что-то типа:
перед implementation. Но мне, как новичку, не реально догадаться что написать для NetUserSetInfo! Так что за пример скажу огромное - спасибо! |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Перепробовав много функций в попытке зачислить тестового пользователя в админы, мне надоело каждый раз объявлять всё новые и новые функции из Netapi32.dll.
Посему - предлагаю воспользоваться готовым решением по всему и вся из MSDN, портированному в Delphi, а именно - JEDI API Library. Дописывал уже засыпая, посему за оформление и упущения в обработке ошибок - не ругаться.
Это сообщение отредактировал(а) kami - 25.11.2010, 02:00 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |