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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2012, 18:35   #1
Artempokrowski
Пользователь
 
Регистрация: 06.07.2010
Сообщений: 31
По умолчанию createprocess проблема с пробелами в параметрах запуска

Возникла проблема при передачи строки в параметры для запуска приложения, приложение открывает не тот файл который мне надо. Конкретно если путь к файлу лежит в папке, имя которой имеет пробел то он открывает мне (пытается открыть) файл до этого пробела.
Код:
var
c,d:string;
x:Pansichar;
a:startupinfo;
b:process_information;
begin
  d:='Форма37..doc';
  c:=ExtractFilePath(ParamStr(0));
  x:=Pansichar(c+'рабочее\'+d);
  fillmemory(@a,sizeof(a),0);
  a.cb:=sizeof(a);
  if createprocess(nil,Pchar(putw+' '+x),nil,nil,false,0,nil,nil,a,b) then
    while WaitforSingleObject(b.hProcess,200)=WAIT_TIMEOUT do
      begin
      end;
В данном случае putw это путь к запускаемому приложению, затем идёт пробел для запуска файла, но если переменная X имеет в себе пробел то он запускает путь находящийся до этого пробела а потом мосле этого пробела. Как мне избавиться от данной проблемы. Переименовывать папки убирая пробел не предлагать.
Artempokrowski вне форума Ответить с цитированием
Старый 01.05.2012, 19:15   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Не знаю, поможет ли. Попробуйте экранировать putw (двойными кавычками):
Код:
'"'+putw+'"'
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 01.05.2012, 19:42   #3
Artempokrowski
Пользователь
 
Регистрация: 06.07.2010
Сообщений: 31
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Не знаю, поможет ли. Попробуйте экранировать putw (двойными кавычками):
Код:
'"'+putw+'"'
Да большое спасибо за совет действительно помогло, когда добавил в параметры запуска ' " '(только в кавычках без пробелов) + переменная Х +' " '. Ещё раз спасибо за совет.
Artempokrowski вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
О параметрах запуска и CreateProcess Человек_Борща Общие вопросы Delphi 2 01.06.2011 10:01
Тонкости CreateProcess и передаваемых процессу параметров запуска Человек_Борща Общие вопросы Delphi 9 09.01.2011 19:28
Проблема с пробелами в строках Sam Gold Общие вопросы C/C++ 5 23.04.2010 21:58
проблема с пробелами(VBA) мария2507 Помощь студентам 0 14.04.2010 16:04
Createprocess проблема с типом строк Ky3Heu, Общие вопросы Delphi 2 08.04.2009 23:15