Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
Shouldercannon
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 123
#1

Не могу запустить *.cmd через свою программу - Delphi

22.09.2010, 01:17. Просмотров 1972. Ответов 6
Метки нет (Все метки)

Пытаюсь запустить из своей программы *.com со следующим содержимым
Windows Batch file
1
2
3
4
5
@ECHO OFF
title jImBot 0.4.0 MOD dimaX VS warik
mode con cp select=1251
echo ---------------------------
java -jar modJB.jar
Так запускается нормально
Delphi
1
2
3
4
procedure TForm1.FormCreate(Sender: TObject);
begin
  ShellExecute(0, 'open', PChar(ExtractFilePath(Application.ExeName) + 'Start.cmd'), nil, nil, SW_SHOW); или ShellExecute(Handle, 'open', PChar(ExtractFilePath(Application.ExeName) + 'Start.cmd'), nil, nil, SW_RESTORE);
end;
Если я указываю полный путь
Delphi
1
2
3
4
procedure TForm1.FormCreate(Sender: TObject);
begin
  ShellExecute(0, 'open', 'D:\AppServ\www\Start.cmd'), nil, nil, SW_SHOW); или ShellExecute(Handle, 'open', 'D:\AppServ\www\Start.cmd'), nil, nil, SW_RESTORE);
end;
то не запускается, только окно Start.com покажется и тут же исчезнет.
В чём ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2010, 01:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не могу запустить *.cmd через свою программу (Delphi):

Как запустить программу через свою?
Как запустить прочую программу по нажатии кнопки ? unit Unit1; interface ...

Как через свою программу запустить другую от имени админа?
Как через свою программу запустить другую от имени админа? Ну что бы вылезло...

Запустить свою программу с ключом с выводом результатов в файл
Всем доброго времени суток! Есть код скрипта delphi в Altium Designer, мне...

Как запустить свою программу вместо Explorer.exe
Здравствуйте всем!!! Помогите решить одну задачку, вот тут нужно исправить,...

Управление отдельного окна программы через свою программу
Всем привет, у меня есть программа очень схожая с Delphi хочу попробовать как...

Не могу запустить программу
Знакомый программист помог мне в учебе и написал программу, отправив мне ее в...

6
Xander Bass
Йошь-мыслитель
121 / 115 / 25
Регистрация: 22.02.2009
Сообщений: 675
Записей в блоге: 5
22.09.2010, 01:39 #2
Скорее всего ты что-то напутал в указании полного пути.
0
Shouldercannon
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 123
22.09.2010, 04:11  [ТС] #3
Если бы я напутал, то ничего не было бы. А так нужный *.cmd запускается и тутже закрывается.
0
dampir_sanek
150 / 148 / 44
Регистрация: 09.02.2010
Сообщений: 407
22.09.2010, 08:18 #4
Проверил у себя. если добавить сюда команду pause, т.е.
Windows Batch file
1
2
3
4
5
6
@ECHO OFF
title jImBot 0.4.0 MOD dimaX VS warik
mode con cp select=1251
echo ---------------------------
java -jar modJB.jar
pause
то все работает и для первого способа и для второго. если pause нет, то в обоих случаях окно появляется и тут же пропадает.
0
Shouldercannon
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 123
22.09.2010, 15:01  [ТС] #5
Цитата Сообщение от dampir_sanek Посмотреть сообщение
Проверил у себя. если добавить сюда команду pause, т.е.
Код
@ECHO OFF
title jImBot 0.4.0 MOD dimaX VS warik
mode con cp select=1251
echo ---------------------------
java -jar modJB.jar
pause
то все работает и для первого способа и для второго. если pause нет, то в обоих случаях окно появляется и тут же пропадает.
Стало лучше, но теперь другая ошибка
Unable to access jarfile modJB.jar
Для продолжения нажмите любую клавишу . . .


Добавлено через 30 минут
Не успел отредактировать.
Теперь Start.com выглядит так
Код
title jimBot 0.4.0 MOD dimaX VS warik
mode con cp select=1251
java -jar modJB.jar
pause
Путь до Start.com указан правельно, но при запуске Start.com по данному пути появляется ошибка:
D:\Server CMS Icq>title jimBot 0.4.0 MOD dimaX VS warik

D:\Server CMS Icq>mode con cp select=1251

Состояние устройства CON:
--------------------------
Строки: 300
Столбцы: 80
Скорость клавиатуры: 31
Задержка клавиатуры: 1
Кодовая страница: 1251


D:\Server CMS Icq>java -jar modJB.jar
Unable to access jarfile modJB.jar

D:\Server CMS Icq>pause
Для продолжения нажмите любую клавишу . . .

В D:\Server CMS Icq лежит сама запускающая программа, а не modJB.jar. Из-за чего так получается?
0
Somebody
2799 / 1610 / 251
Регистрация: 03.12.2007
Сообщений: 4,211
Завершенные тесты: 3
22.09.2010, 18:37 #6
Пятый параметр ShellExecute - текущая папка, если nil, значит будет та же, что и в твоей проге. Надо или передавать путь в ShellExecute, или чтобы bat менял папку на ту, в которой находится
Код
%~d0
cd %~p0
0
Shouldercannon
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 123
22.09.2010, 20:09  [ТС] #7
Спасибо, помогло
0
22.09.2010, 20:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2010, 20:09
Привет! Вот еще темы с решениями:

Не могу запустить программу
Всем привет,пожалуйста помогите не могу завести программу уже не знаю что и...

Не могу запустить программу на другой машине
Здравствуйте! Применяю в своей программе OPC client "prOPC Client". На машине...

Не могу запустить программу написанную на Borland Delphi 7.0
Не могу запустить программу написанную на Borland Delphi 7.0. при запуске...

не могу нормально запустить программу. Точнее запускается, но не работает (
unit Laba3; interface uses Windows, Messages, SysUtils, Classes,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru