Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2009, 20:49   #1
Рамик
Студент
Форумчанин
 
Аватар для Рамик
 
Регистрация: 18.02.2009
Сообщений: 125
Вопрос [Delphi] Изменение пароля пользователя

Доброго времени суток!
подскажите пожалуйста как можно программно изменить пароль пользователя?
Рамик вне форума Ответить с цитированием
Старый 03.08.2009, 23:17   #2
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

пользователя на форуме?
для начала советую почитать http://programmersforum.ru/showthread.php?t=38803

Последний раз редактировалось Lemo; 03.08.2009 в 23:25.
Lemo вне форума Ответить с цитированием
Старый 04.08.2009, 00:34   #3
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Если в винде, с помощью делфи, с правами админа, на локальном компе то так:
Код:
winexec(PChar('cmd /c net user ИМЯ_ЮЗЕРА НОВЫЙ_ПАРОЛЬ_ЮЗЕРА'),SW_Hide);
пример:
Код:
winexec(PChar('cmd /c net user vasja 12345'),SW_Hide);
Если нужно по сети, есть еще параметр /domain, читайте справку для net user.
Gorychev вне форума Ответить с цитированием
Старый 04.08.2009, 00:42   #4
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
Сообщение от Gorychev Посмотреть сообщение
Если в винде, с помощью делфи, с правами админа, на локальном компе то так:
Код:
winexec(PChar('cmd /c net user ИМЯ_ЮЗЕРА НОВЫЙ_ПАРОЛЬ_ЮЗЕРА'),SW_Hide);
пример:
Код:
winexec(PChar('cmd /c net user vasja 12345'),SW_Hide);
Если нужно по сети, есть еще параметр /domain, читайте справку для net user.
Это не программно... Это посылание команды в напрямую консоль(а консоль уже сама обр.) а не прямое обращение к windows...

Последний раз редактировалось zotox; 04.08.2009 в 00:55.
zotox вне форума Ответить с цитированием
Старый 04.08.2009, 01:18   #5
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Цитата:
Это не программно... Это посылание команды в напрямую консоль(а консоль уже сама обр.) а не прямое обращение к windows...
Код рабочий, проверенный. А если это код - то это часть программы(или скрипта). Что вас не устраивает? Ваш вариант?
Gorychev вне форума Ответить с цитированием
Старый 04.08.2009, 01:32   #6
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Цитата:
Сообщение от Gorychev Посмотреть сообщение
Код рабочий, проверенный.
А кто говорил что код не рабочий?

Цитата:
Что вас не устраивает?
Дело таки в том если я нахожусь не под рутом и если я не могу изменить пароль (к примеру гость или другая учетка) то надо еще и программно анализировать ответ из cmd что не совсем удобно мне кажится(так же если от программы напрямую посылать OC о изменении пароля то будет все как наладони (если будет та или иная ошибка))
Так же я думаю что операция чуть дольше будет исп. если делать так(однако размер проги будет выигрывать с вариантом cmd)

Программа --> Посылка в cmd --> cmd анализирует и посылает от себя команду в ОС

Так будет чуть побыстрее (тоже так думаю)

Программа --> Посылка в ОС сразу о смене пароля (без cmd, так как cmd сразу не меняет пароль, то есть cmd отсылает команду ОС о смене пароля, а OC уже меняет)

Цитата:
Ваш вариант?
Моего варианта нету...(мне самому интересно посмотреть вариант кода)(не подумайте что я умничаю )
Но очень уж больно простой код вы привели(я не мазахист) и не очень удобный в плане анализа ошибок если в cmd что-то пойдет не так (к примеру не рут доступ)

Последний раз редактировалось zotox; 04.08.2009 в 01:35.
zotox вне форума Ответить с цитированием
Старый 04.08.2009, 13:31   #7
Рамик
Студент
Форумчанин
 
Аватар для Рамик
 
Регистрация: 18.02.2009
Сообщений: 125
По умолчанию

Код:
winexec(PChar('cmd /c net user vasja 12345'),SW_Hide);
[/QUOTE]


а как сделать чтобы пароль был тот что я ввел в edit1.text(и имя пользователя в edit2)?
Рамик вне форума Ответить с цитированием
Старый 04.08.2009, 13:46   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Читай в хелпе про NetUserChangePassword
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.09.2019, 23:46   #9
Mr Robot
 
Регистрация: 27.07.2019
Сообщений: 5
По умолчанию

Код:
procedure SetPasswordActiveUser(Password:string);
var
  UN, SPar: string;
  UName: TMemo;
  function GetCurrentUserName: string;
  const
    cnMaxUserNameLen = 254;
  var
    sUserName: string;
    dwUserNameLen: DWORD;
  begin
    dwUserNameLen := cnMaxUserNameLen - 1;
    SetLength(sUserName, cnMaxUserNameLen);
    GetUserName(PChar(sUserName), dwUserNameLen);
    SetLength(sUserName, dwUserNameLen);
    Result := sUserName;
  end;

begin
 UN := GetCurrentUserName;
  UName := TMemo.Create(nil);
  UName.Text := UN;
  try
    SPar := '/K net user ' + UName.Text + ' /active:yes && net user ' + UName.Text + ' '+Password+' && exit';
    ShellExecute(0, nil, 'cmd.exe', PChar(SPar), nil, 0);
    Application.ProcessMessages;
    Sleep(100);
    Application.ProcessMessages;
  except
    Application.ProcessMessages;
  end;
  UName.Free;

end;
Mr Robot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение размера области пользователя Пепел Феникса Win Api 6 07.12.2009 16:50
БД Delphi изменение информации и внедрение базы в меню romanrakov Помощь студентам 7 10.05.2009 21:04
как запретить изменение текстового файла на delphi BuT@JL Помощь студентам 1 28.02.2009 05:35
Узнать группу пользователя (Delphi) Air Помощь студентам 4 01.05.2008 00:13
изменение обоев с помощью delphi Alar Общие вопросы Delphi 0 29.10.2006 20:35