Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1230889749
BitalZ
2009-01-02 12:49
2009.02.15
В каком модуле описан интерфейс IHtmlDocument2


8-1176711307
WondeRu at work
2007-04-16 12:15
2009.02.15
Для начинающих: Your first MP3 Delphi player


15-1229513156
rulee
2008-12-17 14:25
2009.02.15
Ураааааааааа я этой ночью стал отцом.


15-1229688631
Кое кто
2008-12-19 15:10
2009.02.15
Как переводиться have got?


2-1231168615
Цукор5
2009-01-05 18:16
2009.02.15
StringReplace





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский