Форум: "Начинающим";
Текущий архив: 2009.02.15;
Скачать: [xml.tar.bz2];
ВнизПроблема Найти похожие ветки
← →
FEV (2009-01-08 11:18) [0]Вопрос, пишу маленькую программку...
Необходим запуск с параметром.
Использую ShellExecute(Handle, nil, "file", "parametr", nil, SW_SHOW);
В общем весь код таков:procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.Execute;
edit1.Text:=OpenDialog1.Files[0];
end;
procedure TForm1.Button2Click(Sender: TObject);
var
sth:pansichar;
begin
sth:=pansichar(edit1.text);
ShellExecute(Handle, nil, "vivdec", sth, nil, SW_SHOW);
end;
Имеется sth(pansichar)... Если sth равен полному пути (D:\asd\viv\asd.viv), то программа (vivdec) не запускается, но если он пуст илиравен viv\asd.viv (при условии, что сама программа в D:\asd\), то запускается и выполняется... Но самое интересное, что если я сам ввожу параметр ShellExecute(Handle, nil, "vivdec", "D:\asd\viv\asd.viv", nil, SW_SHOW); то программа также запускается и выполняется нормально. Специально проверял, что будет в результате sth:=pansichar(edit1.text), там всё нормально. В чем проблема? Или каким другим образом запускать внешний файл с параметром?
← →
Сергей М. © (2009-01-08 11:23) [1]
> программа (vivdec) не запускается
На основании чего сделано такое умозаключение ?
← →
Плохиш © (2009-01-08 11:30) [2]
> Имеется sth(pansichar)... Если sth равен полному пути (D:
> \asd\viv\asd.viv), то программа (vivdec) не запускается,
> но если он пуст илиравен viv\asd.viv (при условии, что
> сама программа в D:\asd\), то запускается и выполняется.
> ..
Никаких чудес. Пиши полный путь для своей vivdec.
← →
FEV (2009-01-08 11:31) [3]Ну потому что она не запускается. Не появляется в процессах. Да и есть 3 способа ее работы...
1. нет параметра - она нам об этом пишет, сама прога.
2. параметр не верен - прога запускается и пишет об ошибке.
3. параметр верен - прога выполняет то, для чего написана
А тут ноль. Никаких действий. Значит ошибка вызова. Но всё проверил, ошибок нет. Всё должно работать, но не работает. Есть ли другой способ запускать внешние файлы с параметром?
← →
FEV (2009-01-08 11:34) [4]
> Если sth равен полному пути (D:\asd\viv\asd.viv), то программа
> (vivdec) не запускается.
Если я его пишу ВРУЧНУЮ, вместо sth, то работает... Парадокс.
← →
FEV (2009-01-08 11:41) [5]Фу. Нарыл.
Вставил:procedure TForm1.Button2Click(Sender: TObject);
var
sth:pansichar;
begin
sth:=pansichar("vivdec.exe "+edit1.text);
winexec(sth,SW_SHOW);
end;
Теперь пашет нормально... Видать команда ShellExecute(Handle, nil, "vivdec", sth, nil, SW_SHOW); к чему то придирчив... Хотелось бы все равно знать к чему...
← →
Сергей М. © (2009-01-08 11:43) [6]
> потому что она не запускается
Железная логика - "программа не запускается, потому что она не запускается".
> Значит ошибка вызова
Угу, ошибка.
А где анализ ее кода ?
Ведь ShellExecute - это функция !
А ты даже не сподобился получить и проанализировать результат ее вызова.
И при этом ты смеешь заявлять, что кто-то там у тебя "не запускается")
← →
Сергей М. © (2009-01-08 11:44) [7]
> Хотелось бы все равно знать к чему
Справку надо читать, тогда и знать будешь.
← →
FEV (2009-01-08 11:55) [8]Чтож. Посмотрю...
Но просто странно то, что я сам ввожу и что передается из edit"a одно и то же(100%, проверял), но результат разный...
← →
qqq (2009-01-08 12:06) [9]видать, пути текущие разные
в одном случае находит твою внешнюю прогу, в другом - нет
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.02.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c