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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2013, 01:49   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
Вопрос Программная работа с gsec.exe

Добрый вечер!
Нужно программно поменять пароль для пользователя SYSDBA.
Делаю программный запуск этой утилиты так:
Код:
procedure TMainForm.sButton1Click(Sender: TObject);
begin
 ShellExecute(Handle,'open',
              PWideChar('C:\Program Files\Firebird\Firebird_2_5\bin\gsec.exe'),
              ' -user SYSDBA -password masterkey',
              nil,
              SW_SHOW);
end;
Утилита запускается как положено, но дальше нужно запустить как-то команду на изменение пароля, т.е., например, вот эту -modify SYSDBA -pw qwerty
Как объединить обе этих команды в одну и выполнить?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 19.01.2013, 01:55   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

хм, выкинуть ShellExecute как минимум.
На первый раз взять CreateProcess, им первый раз запустить с параметрами, потом всем там же получить пайп(в гоогле Pipes) на ввод и в этой пайп драпать консольный ввод.

Архитектура такая:
1. Запускается поток с программой, поток работает пока живет программа. - CreateProcess выполняется тут, тут же получается и пайп на ввод/вывод.
--2. Запускается дочерний поток на ввод и ожидает команд от юзера.
--3. Запускается поток на вывод(Из VCL юзер указывает куда делать вброс гадости из черного ничто), ну и цикл опроса ничто для получения из пайпа инфы.
2. - Отмерло ПО? Отмирают дочерние потоки, и потом отмирает и он сам.
3. The end.

В JEDI есть компонент JvCreateProcess и полноценная демонстрация ввода через TEdit и вывода в Memo для cmd.exe.
Я к тому что можете просто взять библиотеку в оборот а можете слизать этот компонент.

Последний раз редактировалось Человек_Борща; 19.01.2013 в 02:01.
Человек_Борща вне форума Ответить с цитированием
Старый 19.01.2013, 02:51   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

А через Shell Execute нельзя все таки сделать?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 19.01.2013, 03:20   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Не думаю. Нужно получать указатель на ввод и туда писать уже.
Попробуйте просто в порядке очереди указать, мб сработает.
Человек_Борща вне форума Ответить с цитированием
Старый 19.01.2013, 12:12   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
gsec -user sysdba -pass sysdbapass -modify sysdba -pw newsysdbapass 
gsec -user sysdba -pass sysdbapass -database host://pathtosecuritydatabase -modify sysdba -pw newsysdbapass
http://www.sql.ru/forum/actualthread.aspx?tid=56117
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi программная работа с пользователя и группами Windows KiL0z Win Api 5 22.12.2011 08:02
Программная работа со звуком _-Re@l-_ Общие вопросы Delphi 7 28.01.2011 11:49
программная работа с портом pci [linux?] arcer Win Api 7 25.08.2010 22:30
Программная работа с полями (формула) NomadV Microsoft Office Word 7 08.04.2010 15:21
программная работа с параметром Sack Microsoft Office Access 4 29.09.2008 11:22