Страница 1 из 1

Проблема с запуском *.cmd

Добавлено: 22 сен 2010, 01:15
Shouldercannon
Пытаюсь запустить из своей программы *.com со следующим содержимым

Код: Выделить всё

@ECHO OFF
title jImBot 0.4.0 MOD dimaX VS warik
mode con cp select=1251
echo ---------------------------
java -jar modJB.jar
Так запускается нормально

Код: Выделить всё

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;
Если я указываю полный путь

Код: Выделить всё

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 покажется и тут же исчезнет.
В чём ошибка?

Re: Проблема с запуском *.cmd

Добавлено: 22 сен 2010, 03:45
Duncon
D:\\ ?

Re: Проблема с запуском *.cmd

Добавлено: 22 сен 2010, 04:12
Shouldercannon
Duncon писал(а):D:\\ ?

Непонял ответа

Re: Проблема с запуском *.cmd

Добавлено: 22 сен 2010, 10:01
BBB
Duncon писал(а):D:\\ ?
Это ж Delphi, а не C, тут в строковых константах бэк-слэши задваивать не нужно.

Методом исключения напрашивается вывод, что банально укзано не то полное имя. Т.е. файл или лежит не в том каталоге, или под другим именем.

Для проверки предлагаю отобразить строку, поллчающуюся в первом случае:
ShowMessgage ('<' + PChar(ExtractFilePath(Application.ExeName) + 'Start.cmd' + '>')

Re: Проблема с запуском *.cmd

Добавлено: 22 сен 2010, 15:39
Shouldercannon
Вы меня не слышите. Путь на 100% верный (проврено, перепроверено). В start.com надо было после java -jar modJB.jar добавить pause, но и тут ошибки не завтавили себя долго ждать. Так как путь верный, то 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 - это папка, где лежит моя программа, которая запускает start.com. В чём косяк я не пойму.

Re: Проблема с запуском *.cmd

Добавлено: 23 сен 2010, 10:04
BBB
Shouldercannon писал(а):D:\Server CMS Icq>java -jar modJB.jar
Unable to access jarfile modJB.jar

D:\Server CMS Icq - это папка, где лежит моя программа, которая запускает start.com. В чём косяк я не пойму.
Вероятно, запустившаяся java не может найти файл modJB.jar, о чем и сообщает: "Unable to access jarfile modJB.jar".
Видимо, в cmd-файле при запуске java надо или указать полный путь jar-фала, или каким-то иным способом (через переменные среды или другие настройки) сообщить ей, в каком (каких) каталоге(ах) ей следует искать jar-файлы.