Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.09.2008, 15:09
ZevsTula ZevsTula вне форума
Прохожий
 
Регистрация: 06.09.2008
Адрес: Россия, Тула
Сообщения: 7
Репутация: 10
По умолчанию Запустить чужое приложение (bat'ник)

Собственно, как запустить чужое приложение, но не exe'шник, а bat'ник. Все ветки в форуме по данному вопросу прочел. Пробовал и WinExec, и ShellExecute и JvCreateProcess, но толку ноль. Проблема имхо в батнике.
Вот как я запускаю батник из Delphi:
Код:
if WinExec(PChar(gvFilenameStrah), sw_show) < 32 then
      ShowMessage('Ошибка');
Здесь gvFilenameStrah - полный путь и имя батника. При выполнении этой строки DOS-окно открывается и моментально закрывается.
Вот что из себя представляет батник:
Код:
@echo off
cls
ReplCmd -db:"Local_РО" -u:LOGIN -p:PASSWORD -dlg:N -f:imp_strah_bog.log -prof:"страх" -i:3 -cmnt:"страх РО"
rem Del /q c:\imp\strah\*.*
p.s. ReplCms - консольное виндовое приложение.

Т.е. получается вот что: из дельфи данный батник не запускается, а к примеру, из того же FARа (т.е. просто из под винды) вполне себе отлично запускается?
Что делать-то? Как эту гадость из дельфи запустить?

p.s. Причем надо не просто запустить, а дождаться завершения выполнения данного батника, и только потом продолжить выполнение моего приложения.

Последний раз редактировалось ZevsTula, 25.09.2008 в 15:24.
  #2  
Старый 25.09.2008, 17:13
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Не знаю как ты там запускал, но код
Код:
var
 AFile: String;
begin
 AFile := 'C:\bat.bat';

 ShellExecute(0, 'Open', PChar(AFile), nil, nil, SW_HIDE);
 ShowMessage('Ok!');
end;
работает без вопросов
  #3  
Старый 25.09.2008, 17:15
xchrom xchrom вне форума
Начинающий
 
Регистрация: 08.04.2008
Сообщения: 177
Репутация: 15
Сообщение

Вот тебе кусок из работающей проги... у меня там в батниках arj -ем архивируются файлы определенные, но и с запуском все то же будет...
BatFiles - это просто список имен bat-файлов

Код:
var
  stin: STARTUPINFO;
  prin: PROCESS_INFORMATION;
************************************************************************
    stin.lpTitle := PChar('Формируется транспортный файл '+filename + ' Запущен '+ BatFiles[i]);
    stin.wShowWindow := SW_HIDE;
    stin.dwFlags := STARTF_USESHOWWINDOW;
    CreateProcess(nil,PChar(BatFiles[i]),nil,nil,false,0,nil,'G:\CLIENT\out\',stin,prin);
    WaitForSingleObject(prin.hProcess,INFINITE); //ждем завершения архивации

Последний раз редактировалось xchrom, 25.09.2008 в 17:18.
  #4  
Старый 01.10.2008, 17:00
ZevsTula ZevsTula вне форума
Прохожий
 
Регистрация: 06.09.2008
Адрес: Россия, Тула
Сообщения: 7
Репутация: 10
По умолчанию

Вопрос снят. Всем спасибо за советы. Проблема была в том, что я забыл флаг FORCE_ON_FEEDBACK.
Закрытая тема


Delphi Sources

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

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:18.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025