![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ошибка при выполнении командного файла из приложения
stud © (2006-03-10 11:18:00)приложение запускает командный файл с параметрами,
в режиме отладки из среды дельфи, все выполняется замечательно
если запустить скомпилированное приложение - при выполнении командного файла возникают ошибки - файл такой-то не найден.
но если остановить выполнение программы, взять сформированую строку параметров и запустить командный файл с ними, все тоже нормально работает.
с чем может быть связано подобное поведение??
stud (2006-03-10 13:35:00) [1]в общем бред полный, как появился этот геморой, так и пропал.....
stud (2006-03-10 12:41:00) [2]command='C:\TEMP\tmp\Q3A0G40n.r0u C:\RKC\OTCHET\TK48 C:\TEMP\tmp\Q3A0G40n.cry Q3A0G40n.r0u'
exename=extractfiledir(application.ExeName)+'\sign.cmd'
workdir=extractfiledir(application.ExeName)
Плохиш (2006-03-10 12:34:00) [3]А я бы ещё хотел увидеть содержание переменных comand, exename, workdir
Сергей М. (2006-03-10 12:19:00) [4]
> runinfo.hInstApp:=runerror
А это чего такое ?
Сергей М. (2006-03-10 12:16:00) [5]Ну и где тут вызов GetLastError() ?
> ситуация тупейшая
> runinfo.hProcess:=runhandle <-- Это чего такое ?
Действительно "тупейшая" .. Хоть и не влияет никак на сабж ..
stud (2006-03-10 12:07:00) [6]procedure TForm1.sing(comand: string; exename, workdir : string; var ecode: cardinal);
var
runinfo : TShellExecuteInfo;
runhandle, runerror : Thandle;
begin
// процедура шифрования
zeromemory(@runinfo,sizeof(runinfo));
runinfo.cbSize:=sizeof(runinfo);
runinfo.hInstApp:=runerror;
runinfo.Wnd:=0;
runinfo.fMask:=SEE_MASK_NOCLOSEPROCESS;
runinfo.lpVerb:='open';
runinfo.nShow:=sw_show;
runinfo.lpFile:=pchar(exename);
runinfo.lpParameters:=pchar(comand);
runinfo.lpDirectory:=pchar(workdir);
runinfo.hProcess:=runhandle;
if shellexecuteex(@runinfo)=true then
begin
WaitForSingleObject(runinfo.hProcess, INFINITE);
GetExitCodeProcess(runinfo.hProcess,ecode);
end;
CloseHandle(runinfo.hProcess);
end;
причем ситуация тупейшая((( как говорится вчера все работало
Чапаев (2006-03-10 11:59:00) [7]
> приложение запускает командный файл с параметрами
Чтобы запустить командный файл, нужно запустить командный интерпретатор и передать ему командный файл в качестве параметра (почти с) кот Матроскин
Сергей М. (2006-03-10 11:53:00) [8]
> stud © (10.03.06 11:47) [4]
> при запуске командного файла
Показывай как запускаешь ..
stud (2006-03-10 11:47:00) [9]
> при запуске командного файла используй ПОЛНЫЙ путь к
> нему и в параметрах
при запуске командного файла используется ПОЛНЫЙ ПУТЬ К НЕМУ, В ПАРАМЕТРАХ УКАЗАН ПОНЫЙ ПУТЬ К НУЖНЫМ ФАЙЛАМ, указывается рабочий каталог для командного файла. везде указаны ПОЛНЫЕ ПУТИ!!
Desdechado (2006-03-10 11:33:00) [10]повторить еще раз?
в режиме отладки ДРУГОЙ currendir, а ты об этом не догадываешься
при запуске командного файла используй ПОЛНЫЙ путь к нему и в параметрах
stud (2006-03-10 11:26:00) [11]
> но если остановить выполнение программы, взять
> сформированую строку параметров и запустить командный
> файл с ними, все тоже нормально работает
разница только в том, что в режиме отладки все работает - при самостоятельном запуске приложения нет. в остальном все один в один
alex_*** (2006-03-10 11:20:00) [12]с тем что файл не найден. Сам же сказал. Посмотри куда указывает CurrentDir и где лежит файл