Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Завтра :

День славянской письменности и культуры


Выполнение ДОС команды


Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
Пол:Муж dogma
aka Достоевский


Возраст: 27
Знак зодиака: Телец
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
СообщениеПт, 10-Июн-2005 11:18    Заголовок сообщения: Выполнение ДОС команды
Цитата

Есть ли функция, которая позоволяет выполнять ДОС команды - mkdir,rd,cd... ? ShellExecute не предлагать. Нужна универсальная - такая, что выполнит запуск файла с параметрами при это не придется пихать имя файла и сами параметры по разным аргументам функции.
_________________
Bonum initium est dimidium facti
SQL-задачи (on-line)
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж NikotiN
Розовый мамонт


Возраст: 26
Знак зодиака: Овен
Зарегистрирован: 18.03.2005
Сообщения: 2137

СообщениеПт, 10-Июн-2005 18:36 
Цитата

winexec :)

CreateProcess кажется тоже.

а в чём проблема? неужели так трудно распихать аргументы по двум параметрам.

напиши сам такую функцию, там пара строчек разбора строки на команду и аргументы, а потом shellexecute.
В начало
Посмотреть профиль Отправить личное сообщение
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеПт, 10-Июн-2005 21:26 
Цитата

Цитата:
не предлагать. Нужна универсальная - такая, что выполнит запуск файла с параметрами при это не придется пихать имя файла и сами параметры по разным аргументам функции.

А кто тебя заставляет по разным агрументам? Размести в одном

_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж dogma
aka Достоевский


Возраст: 27
Знак зодиака: Телец
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
СообщениеСб, 11-Июн-2005 6:17 
Цитата

WinExec не запускает батники, а ShellExecute требует все размищать по разным параметрам

Цитата:
напиши сам такую функцию, там пара строчек разбора строки на команду и аргументы, а потом shellexecute.


Не так все просто. Хотя у меня есть одна мысль; посмотрим...

_________________
Bonum initium est dimidium facti
SQL-задачи (on-line)
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж dogma
aka Достоевский


Возраст: 27
Знак зодиака: Телец
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
СообщениеСб, 11-Июн-2005 12:05 
Цитата

http://forum.chertenok.ru/viewtopic.php?t=2283&highlight=createprocess
Зря я критиковал WinExec :)
----
Вот так надо было
WinExec('cmd /c ...[имя команды/файла с параметрами]',SW_RESTORE);

_________________
Bonum initium est dimidium facti
SQL-задачи (on-line)
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж dogma
aka Достоевский


Возраст: 27
Знак зодиака: Телец
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
СообщениеЧт, 23-Июн-2005 4:51 
Цитата

Народ! А кто знает как указать приложению при запуске рабочий каталог?
_________________
Bonum initium est dimidium facti
SQL-задачи (on-line)
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Ktf
Администратор


Возраст: 32
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеЧт, 23-Июн-2005 9:19 
Цитата

Запускать его с помощью CreateProcess
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж dogma
aka Достоевский


Возраст: 27
Знак зодиака: Телец
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
СообщениеЧт, 23-Июн-2005 12:30 
Цитата

А с батниками как дела будут обстоять? Батники будут запускаться тоже. Можно конечно использовать cmd.exe, но на 95-ой винде ее нет. Есть command.com, но эта штучка не работает с длинными именами.
Пока решил делать через ярлык, но это как-то глупо.

_________________
Bonum initium est dimidium facti
SQL-задачи (on-line)
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Ktf
Администратор


Возраст: 32
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеЧт, 23-Июн-2005 12:54 
Цитата

Код:

procedure TForm1.Button1Click(Sender: TObject);
var
  SI: TStartupInfo;
  PI: PROCESS_INFORMATION;
  ExeOrBatName: string;
begin
  ExeOrBatName:='c:\test.bat';
  ZeroMemory(@si, SizeOf(TStartupInfo));
  SI.cb:=SizeOf(TStartupInfo);
  CreateProcess(Pchar(ExeOrBatName), '', nil, nil, false, 0, nil, PChar(ExtractFilePAth(ExeOrBatName)), SI, PI);
end;


Под 2к все работает как надо.
Проверь как на 9х.
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж dogma
aka Достоевский


Возраст: 27
Знак зодиака: Телец
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
СообщениеЧт, 23-Июн-2005 13:08 
Цитата

Ща попробую (пишу и думаю, что вроде это уже было ранее и нихрена не получилось).
Через десять минут
Нет не работает! В MSDN сказано, что для пакетных файлов надо использовать cmd.exe. Вот часть справки:
To run a batch file, you must start the command interpreter; set lpApplicationName to cmd.exe and set lpCommandLine to the name of the batch file.

_________________
Bonum initium est dimidium facti
SQL-задачи (on-line)
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Ktf
Администратор


Возраст: 32
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеЧт, 23-Июн-2005 13:17 
Цитата

че-то я не могу найти в MSDN такой строчки...
поднимите мне веки!

да как же не работает?... это в 2к? у меня тоже 2к и все работает!
В начало
Посмотреть профиль Отправить личное сообщение
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеЧт, 23-Июн-2005 19:27 
Цитата

Цитата:
Есть command.com, но эта штучка не работает с длинными именами

У всех работает, а у тебя нет :) В кавычки имена брал?

_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж dogma
aka Достоевский


Возраст: 27
Знак зодиака: Телец
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
СообщениеПт, 24-Июн-2005 1:30 
Цитата

Цитата:
че-то я не могу найти в MSDN такой строчки...
поднимите мне веки!

да как же не работает?... это в 2к? у меня тоже 2к и все работает!

Смотри по параметрам. А ОС WinXP.
Цитата:
У всех работает, а у тебя нет В кавычки имена брал?

нет. ЩА попробуем.

_________________
Bonum initium est dimidium facti
SQL-задачи (on-line)
В начало
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100