Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 14.10.2019, 13:44   #1
gribo4ek
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию Запуск CMD

Добрый деньЕсть строка запуска
Код:
"C:\Program Files (x86)\pgAdmin III\1.16\\pg_dump.exe" --host "192.168.15.50"  --port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --section pre-data --section data --section post-data --encoding UTF8 --verbose --file "D:\old.backup" "gilev"
pause
Которую я генерируют
Код:
Var
Checket:integer;
begin
ini_file := TIniFile.Create('config.ini');
StatusBar1.Panels[1].Text:=((ExtractFilePath(Application.ExeName) + 'config.ini'));
try
host.Text:= ini_file.ReadString('conf', 'host','127.0.0.1');
port.Text:= ini_file.ReadString('conf', 'port','5432');
username.Text:= ini_file.ReadString('conf', 'username','5432');
role.Text:= ini_file.ReadString('conf', '=role','postgres');
BD.Text:= ini_file.ReadString('conf', 'BD','Base');
SaveToFile.Text:= ini_file.ReadString('conf', 'file','C:\')+BD.Text+'_'+FormatDateTime('dd.mm.yyyy', Now)+'.backup';
Checket:=StrToInt(ini_file.ReadString('conf', 'Select','0'));
finally
ini_file.Free
end;
If Checket = 0  then
begin
CheckBox1.Checked:=false;
Button1.Enabled:=true;
end
else
begin
CheckBox1.Checked:=true;
Button1.Enabled:=false;
end
Как запустить данную с троку в CMD , что б результат выполнения отображался в memo???
Спасибо
Изображения
 
gribo4ek вне форума   Ответить с цитированием
Старый 14.10.2019, 14:36   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,259
По умолчанию

а это точно нужно?
может быть, достаточно ShellExecute ?

ну,если вывод нужно получить и именно в мемо, попробуйте поискать функцию GetDosOutput.
например, тыц
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 14.10.2019, 15:04   #3
gribo4ek
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а это точно нужно?
может быть, достаточно ShellExecute ?

ну,если вывод нужно получить и именно в мемо, попробуйте поискать функцию GetDosOutput.
например, тыц
Ошибку вываливает
пишу так
Код:
 Memo1.Lines.Text := GetDosOutput( 'cmd.exe ' + start, '', Rc );
Миниатюры
Нажмите на изображение для увеличения
Название: 1.JPG
Просмотров: 37
Размер:	76.1 Кб
ID:	97970  
gribo4ek вне форума   Ответить с цитированием
Старый 14.10.2019, 15:06   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,085
По умолчанию

Вы думаете "/C" это смайлик там стоял такой?
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 14.10.2019, 15:23   #5
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,259
По умолчанию

и к замечанию p51x ещё добавлю:

Цитата:
Сообщение от gribo4ek Посмотреть сообщение
Код:
Memo1.Lines.Text := GetDosOutput( 'cmd.exe ' + start, '', Rc );
вторым параметром нужно ОБЯЗАТЕЛЬНО указать рабочую папку.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 15.10.2019, 06:57   #6
gribo4ek
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию

Напишите пожалуйста как должна выгладить строка???
gribo4ek вне форума   Ответить с цитированием
Старый 15.10.2019, 10:24   #7
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,259
По умолчанию

попробуйте так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  RC: Cardinal;
  WorkDir :String;
begin
  WorkDir := ExtractFilePath(Application.ExeName);
  Memo1.Lines.Text := GetDosOutput( 'cmd /c '+start, WorkDir, Rc );
  ShowMessage( ' Отладка: Код результата = '+IntToStr(Rc));
end;
p.s. возможно, что двойные кавычки в строке придётся ещё удвоить..
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 15.10.2019, 11:32   #8
gribo4ek
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
попробуйте так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  RC: Cardinal;
  WorkDir :String;
begin
  WorkDir := ExtractFilePath(Application.ExeName);
  Memo1.Lines.Text := GetDosOutput( 'cmd /c '+start, WorkDir, Rc );
  ShowMessage( ' Отладка: Код результата = '+IntToStr(Rc));
end;
p.s. возможно, что двойные кавычки в строке придётся ещё удвоить..
Выдало вот так
Изображения
 
gribo4ek вне форума   Ответить с цитированием
Старый 15.10.2019, 11:37   #9
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,259
По умолчанию

так попробуйте:


Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  RC: Cardinal;
  mycommand, WorkDir :String;
begin
   mycommand := '""C:\Program Files (x86)\pgAdmin III\1.16\pg_dump.exe"" --host "192.168.15.50"  '+
      '--port 5432 --username "postgres" --role "postgres" --no-password --format custom --blobs --section pre-data '+
      '--section data --section post-data --encoding UTF8 --verbose --file "D:\old.backup" "gilev"';
  WorkDir := ExtractFilePath(Application.ExeName);
  Memo1.Lines.Text := GetDosOutput( 'cmd /c '+mycommand, WorkDir, Rc );
  ShowMessage( ' Отладка: Код результата = '+IntToStr(Rc));
end;
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 15.10.2019, 11:45   #10
gribo4ek
Пользователь
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию

Тоже самое
Может дело в кодировке??
Изображения
 
gribo4ek вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск jar revanatar Общие вопросы по Java, Java SE, Kotlin 4 22.10.2011 20:01
Запуск .scr BoT_T Общие вопросы Delphi 2 03.10.2010 21:25
Запуск из res? Virus25 Общие вопросы Delphi 6 17.01.2010 03:51
Запуск exe Betty Общие вопросы Delphi 6 10.07.2009 21:25
Запуск ехе Killbrum Помощь студентам 8 19.08.2008 18:06


19:26.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.