Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.03;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
14-6748
Ihor Osov'yak
2003-03-16 23:44
2003.04.03
К тем бывшим землякам, которых в Стейтсы занесло..


1-6536
ч1
2003-03-21 10:59
2003.04.03
Размер Memo и StringList


3-6419
Yuri Bezsonov
2003-03-16 18:30
2003.04.03
Максимальная скорость выборки


14-6714
DmitryS
2003-03-15 18:22
2003.04.03
Отладка СОМ+ приложений(Transactional Data Module)


14-6721
WMag
2003-03-16 01:00
2003.04.03
Необычный Grid





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