Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2010, 08:46   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию Запуск программы с параметрами

Здравствуйте.
Необходимо из моей программы выполнить программу с параметром как это делается из командной строки ну например
C:\winrar.exe /e C:\1.txt

попробовал вот так
Код:
ShellExecute(Handle, 'open','C:\program files\winrar\rar.exe  ', nil, nil, SW_SHOWNORMAL);
Запускается но если добавить ключи например вот так
Код:
ShellExecute(Handle, 'open','C:\program files\winrar\rar.exe a D:\1\ D:\1.jpg ', nil, nil, SW_SHOWNORMAL);
нечего не запускается

Последний раз редактировалось Lokos; 29.06.2010 в 09:13.
Lokos вне форума Ответить с цитированием
Старый 29.06.2010, 09:18   #2
zumm
БохЪ
Форумчанин
 
Аватар для zumm
 
Регистрация: 30.09.2009
Сообщений: 724
По умолчанию

Ну можно собственно из командной строки её и запустить.
В планах порабощение вселенной...
zumm вне форума Ответить с цитированием
Старый 29.06.2010, 09:24   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Lokos
Попробуй использовать функцию WinExec
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.06.2010, 09:42   #4
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Вот тут побороли примерно такую же проблему.

И еще попробуй так.
Код:
procedure RunProcess(sCmdLine: string; const Params: TStrings);
var
  pParams, pNewParams: PChar;
  iSize, i: Integer;
  si: STARTUPINFO;
  pi: PROCESS_INFORMATION;
begin
  pParams:=GetEnvironmentStrings;
  iSize:=0;
  while ((pParams[iSize]<>#0) or (pParams[iSize+1]<>#0)) do Inc(iSize);
  Inc(iSize);
  GetMem(pNewParams, iSize + Length(Params.Text) - Params.Count + 1);
  try
    Move(Pointer(pParams)^,Pointer(pNewParams)^,iSize);
    for i:=0 to Params.Count-1 do begin
      StrPCopy(pNewParams + iSize, Params[i]);
      Inc(iSize, Length(Params[i]));
      Inc(iSize);
    end;
    pNewParams[iSize]:=#0;
    Inc(iSize);
    ZeroMemory(@si,sizeof(si));
    si.cb:=sizeof(si);
    si.wShowWindow:=SW_RESTORE;
    CreateProcess(PChar(sCmdLine), PChar(sCmdLine), nil, nil, True, 0, pNewParams, nil, si, pi);
  finally
    FreeMem(pNewParams);
  end;
end;
Вызов ее таков :
Код:
var
  Env: TStrings;
begin
  Env:=TStringList.Create;
  try
    Env.Add('1-й параметр');
    Env.Add('2-й параметр');
    Env.Add('3-й параметр');
    .......
    RunProcess('C:\файл.exe', Env);
  finally
    Env.Free;
  end;
end;
"Заряженному танку в дуло не смотрят" @Dekmer in WoT

Последний раз редактировалось Kotofff; 29.06.2010 в 09:49.
Kotofff вне форума Ответить с цитированием
Старый 29.06.2010, 18:32   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Так где у Вас стоит nil после пути к винрару, там и надо прописывать ключи. Посмотрите описание ShellExecute
FaTaL вне форума Ответить с цитированием
Старый 29.06.2010, 20:37   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

потому что ключи это отдельный параметр.(первый ваш nil)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск JavaScript с параметрами SL1CK Работа с сетью в Delphi 0 28.05.2010 00:51
Запуск с параметрами bookkc Помощь студентам 10 05.04.2010 13:13
Delphi: запуск программы из командной строки с параметрами kaa1977 Помощь студентам 6 22.03.2010 10:03
Запуск с параметрами Xatr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 12 05.05.2009 17:40
Запуск exe с параметрами Altera Общие вопросы Delphi 2 26.02.2008 21:25