Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.03;
Скачать: CL | DM;

Вниз

CreateProcess и NT   Найти похожие ветки 

 
_BasiL_   (2003-03-19 16:46) [0]

Имеется вот такой код запуска приложений
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
if not CreateProcess( nil, // No module name (use command line).
PChar(Stroka), // Command line.
nil, // Process handle not inheritable.
nil, // Thread handle not inheritable.
False, // Set handle inheritance to FALSE.
0, // No creation flags.
nil, // Use parent"s environment block.
nil, // Use parent"s starting directory.
si, // Pointer to STARTUPINFO structure.
pi ) // Pointer to PROCESS_INFORMATION structure.
Then Begin
ShowMessage("Error!");
Exit;
End;

При запуске ДОСовских программ из под WIN NT(2K, XP), программы запускаются через cmd.exe, и они не работают, а запускаю из того же фара все ОК, если сделать ярлык, тоже все работает.
Кто, что посоветует поменять в коде программы или какой нибудь другой запуск.


 
Snap   (2003-03-19 16:53) [1]

Попробуй ShellExecute


 
_BasiL_   (2003-03-19 17:27) [2]

Удалено модератором


 
ki11er   (2003-03-19 17:44) [3]


> программы запускаются через cmd.exe

Как запускаются (чему равно Stroka)?
cmd нужно запускать с параметрами, чтобы работало так, как ты хочешь...


 
AlexKr   (2003-03-19 17:45) [4]

А сам запуск на выполнение где? Что-нибудь типа WaitForSingleObject()


 
ki11er   (2003-03-19 17:48) [5]

2 AlexKr
8-O 8-D


 
panov   (2003-03-19 18:31) [6]

Совет: для запуска используй полный путь до исполняемого файла.


 
_BasiL_   (2003-03-21 10:17) [7]

Вызывается программа BinkleyTerm (фидошная) при запуске, например из ФАРа, она дозванивается, соединяется отправляет (получает) файлы, короче все ОК. А если запускать из DELPHI (WIN NT) то запускается с помощью cmd.exe, и после дозвона, в тот момент, когда звонилка должна в статусе написать connect пишется Hang Up, так, раза с 10 дозванивается, а из ФАРа с первого раза :-(. Я сделал запуск проги через ПИФ файл у меня вроде заработала.


 
_BasiL_   (2003-03-21 10:21) [8]

Вот полная процедура запуска внешних программ
Function TAppWindows.RunProgramm(Stroka: String): Boolean;
Var
si: STARTUPINFO;
pi: PROCESS_INFORMATION;
WaitReason: DWord;
NameFile: String;
Begin
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
if not CreateProcess( nil, // No module name (use command line).
PChar(Stroka), // Command line.
nil, // Process handle not inheritable.
nil, // Thread handle not inheritable.
False, // Set handle inheritance to FALSE.
0, // No creation flags.
nil, // Use parent"s environment block.
nil, // Use parent"s starting directory.
si, // Pointer to STARTUPINFO structure.
pi ) // Pointer to PROCESS_INFORMATION structure.
Then Begin
ShowMessage("Ошибка! Запуск программы не возможен!");
RunProgramm:=FALSE;
Exit;
End;
If Pos(".",Stroka)<>0 Then NameFile:=AppWindows.UpStr(Copy(Stroka,1,Pos(".",Stroka)-1));
Repeat
WaitReason:=WaitForSingleObject(pi.hProcess,0);
Application.ProcessMessages;
Until (WaitReason <> WAIT_TIMEOUT);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
RunProgramm:=TRUE;
End;


А это значение Stroka="Bink.bat"
Урезанное, содержимое батника
bnu
bt
bnu /u


 
Anatoly Podgoretsky   (2003-03-21 10:51) [9]

"Bink.bat" это не программа, а данные (параметр) для командного процессора, вот его и надо запускать!


 
_BasiL_   (2003-03-21 11:11) [10]

Я `bink.bat` и запускаю, в заголовке досовского окошка пишется `...\cmd.exe` при установки коннекта с нами клиенты отваливаются. Вот я и спрашивал как избежать запуска через `cmd.exe` или может у меня, что не так в процедере запуска внешних программ.
Кстати есть NT-евая версия этой програмки, так при ее записке через `cmd.exe` она вообще вываливается с ошибкой при запуске. А из того-же ФАРа запускается и дозванивается.



Страницы: 1 вся ветка

Текущий архив: 2003.04.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.008 c
14-6719
blAckweber
2003-03-15 15:45
2003.04.03
Фигня творится с клавиатурой


3-6367
PVOzerski
2003-03-14 14:10
2003.04.03
Паскальный Set в поле БД: насколько разумно?


3-6337
paa
2003-03-14 10:22
2003.04.03
Работа с таблицей EXCEL


3-6372
QUE
2003-03-14 14:57
2003.04.03
Oracle DataType LONG


8-6612
demonastarot
2002-12-27 10:11
2003.04.03
MediaPlayer





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский