![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Код:
WinExec ('net use b: \\192.168.1.10\Inst', SW_SHOW);команда net use отрабатывает, всё хорошо, а вот... Код:
WinExec ('start /wait \\192.168.1.10\inst\instal\NetDisk.bat', SW_SHOW);команда start отрабатывать не хочет, ни ошибки, ни запуска БАТ-файла не происходит... если же в командной строке выполнить start /wait \\192.168.1.10\inst\instal\NetDisk.bat, то БАТ-файл стартует. подскажите плз, в чём кривость моих рук? ![]() Последний раз редактировалось EviLrul, 17.04.2014 в 17:40. |
|
#2
|
||||
|
||||
|
Код:
procedure CreateProcess(CommandLine: String);
var
startupinfoa: TStartupInfo;
processinformation: TProcessInformation;
begin
ZeroMemory(@startupinfoa, SizeOf(TStartupInfo));
startupinfoa.cb:=SizeOf(TStartupInfo);
startupinfoa.dwFlags:=STARTF_USESHOWWINDOW;
startupinfoa.wShowWindow:=SW_HIDE;
Windows.CreateProcess(nil, PChar(CommandLine), nil, nil, False, 0, nil, nil,
startupinfoa, processinformation);
WaitForSingleObject(processinformation.hProcess, INFINITE);
CloseHandle(processinformation.hThread);
CloseHandle(processinformation.hProcess);
end;Код:
CreateProcess('z.bat'); |
|
#3
|
|||
|
|||
|
Уважаемый NumLock, большое спс за отзывчивость!
Хотелось бы Вас попросить прокоментить ваш код, хотелось бы лучше его понять... т.к. использовал ранее практически как я посмотрю аналогичный код... Код:
procedure Start(name: string);
var
si: STARTUPINFO;
pi: PROCESS_INFORMATION;
begin
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
if not CreateProcess(nil, PChar(name), nil, nil, False, 0, nil, nil, si, pi) then begin
ShowMessage( 'CreateProcess failed.' );
Exit;
end;
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
//ShowMessage('Done !');
end;Код:
if form1.CheckBox4.Checked=true then Start(Rn[1,2]+Rn[4,1]+'7Zip\Inst7z.bat'); А так же интересно, почему не отрабатывает все же мой вариант, есть предположения? Последний раз редактировалось EviLrul, 18.04.2014 в 10:45. |
|
#4
|
||||
|
||||
|
Цитата:
По поводу функции WinExec - она очень древняя и ей лучше не пользоваться. Лучшая ей замена это CreateProcess или же менее предпочтительная ShellExecute. Цитата:
Цитата:
Во-вторых возможно это файл не находится ни в одной из тех папок в которых WinExec может его найти, поэтому желательно указывать перед именем файла и полный путь к нему, или как минимум устанавливать соответствующую текущую директорию с помощью SetCurrentDir. |
|
#5
|
||||
|
||||
|
Цитата:
|
|
#6
|
||||
|
||||
|
Цитата:
так нет такого приложения start! |