Перейти к содержимому


Фотография

Вызов .bat, cmd в Delphi


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 29 June 2009 - 15:22

Появилась надобность вызова определенного консольного файла из-под Delphi, собственно вопрос - как это сделать правильно?

Генерирую .bat-файл из нужных названий:
@Unpacker_cmd.exe fonts.xtd 524287 fonts.rsc
 @pause

Весь смысл в том что первым значением идет source - исходный файл, вторым размер dest-файла, и наконец, третьим сам dest-файл (и source и dest находятся в одной и той же папке где и unpacker_cmd.exe). Консольное приложение делал на C#.

Вызываю:
ShellExecute(0, 'open', PChar(sGlobalExePath+'\System\Unpacker_cmd.bat'), nil, nil, SW_SHOW);
В результате выдает "unpacker_cmd.exe не является внутренней или внешней командой, исполняемой программой или пакетным файлом". Пробовал даже полные адреса файлов указывать, безрезультатно. Самое странное что если запускать .bat-файл вручную, то все работает нормально. Может есть какие-то другие способы (например, вызывать консольное приложение напрямую, передавать параметры)?

Сообщение отредактировал Dageron: 29 June 2009 - 15:22

в проекте gtamodding.ru: декабрь 2008 - декабрь 2012

#2 listener

listener

    Активный участник

  • Главные администраторы
  • PipPipPip
  • 356 сообщений
  • Пол:Мужчина
  • Город:Ft.Lauderdale


Отправлено 29 June 2009 - 16:04

Нужно вызывать либо сам unpacker_cmd.exe, либо как "cmd.exe /c unpacker_cmd.bat"

Сообщение отредактировал listener: 29 June 2009 - 16:05

You think your day was surreal? Try mine.

#3 Dageron

Dageron

    Активный участник

  • Пользователи
  • PipPipPip
  • 1130 сообщений
  • Пол:Мужчина
  • Город:Пермь


Отправлено 29 June 2009 - 17:40

Да, так действительно удобнее).

Есть еще вариант кода:
ShellExecute(0, 'open', PChar('Unpacker_cmd.bat'), nil, PChar(sGlobalExePath+'\System\'), SW_SHOW);

По сути можно сделать и отдельный cmd-распаковщик/запаковщик ресурсов (разумеется, только PC Zlib). К примеру, с более тонкими задачами - заменой определенной текстуры в wtd и автоперепаковкой. Весь вопрос только в практическом назначении.
в проекте gtamodding.ru: декабрь 2008 - декабрь 2012




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных