|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Что не так с WinExec...
Код:
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
|
||||
|
||||
Цитата:
так нет такого приложения start! Пишу программы за еду. __________________ |
#6
|
||||
|
||||
Цитата:
Не стоит путать форумы с богадельнями. © Bargest |