Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ошибка при выполнении командного файла из приложения


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 и где лежит файл


Наверх

Титульная страница Поиск, карта сайта Написать письмо