Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 00:41 08.07.25 
Компютри и Интернет
   >> Delphi
*Кратък преглед

Тема Стартиране на външен файлнови  
Авторlvan (Нерегистриран)
Публикувано21.10.02 09:37



Здравейте,

Имам един пробем и се надявам да получа помощ.

От мое приложение стартирам външен файл (bat-файл) чрез TFileRun.Execute.
Файлът се стартира. Проблемът е че моето приложение веднага след изпълнение на процедурата Execute предава управлението на следващия оператор (след TFileRun.Execute) - т.е. приложението продължава преди да е свършило изпълнението на BAT-файла. От това се получава конфликт със следващата ми процдура.

Засега съм решил проблема с изкуствено задържане на програмата със
Sleep за 5 сек, но това разбира се е несериозно!

И така въпроса:
Приложението ми е тип GUI. Как мога да проследя за завършването на изпълнението на стартиран от мен BAT-файл?



Тема Re: Стартиране на външен файлнови [re: lvan]  
Автор SDR (TaskMaster)
Публикувано21.10.02 11:27



CreateProcess
The CreateProcess function creates a new process and its primary thread. The new process runs the specified executable file.
...
BOOL CreateProcess(
LPCTSTR lpApplicationName, // name of executable module
LPTSTR lpCommandLine, // command line string
LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD
BOOL bInheritHandles, // handle inheritance option
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // new environment block
LPCTSTR lpCurrentDirectory, // current directory name
LPSTARTUPINFO lpStartupInfo, // startup information
LPPROCESS_INFORMATION lpProcessInformation // process information
);
...
The process is assigned a process identifier. The identifier is valid until the process terminates. It can be used to identify the process, or specified in the OpenProcess function to open a handle to the process. The initial thread in the process is also assigned a thread identifier. The identifier is valid until the thread terminates and can be used to uniquely identify the thread within the system. These identifiers are returned in the PROCESS_INFORMATION structure
--------------------------
The WaitForSingleObject function returns when one of the following occurs:

The specified object is in the signaled state.
The time-out interval elapses.
To enter an alertable wait state, use the WaitForSingleObjectEx function. To wait for multiple objects, use the WaitForMultipleObjects.

DWORD WaitForSingleObject(
HANDLE hHandle, // handle to object
DWORD dwMilliseconds // time-out interval
);

...
The WaitForSingleObject function can wait for the following objects:

Change notification
Console input
Event
Job
Mutex
Process
Semaphore
Thread
Waitable timer

A Chestito! i priqtno kodirane

------------------------------
I got a COMPILER, and I'm not afraid to use it!


Тема Re: Стартиране на външен файлнови [re: SDR]  
Авторlvan (Нерегистриран)
Публикувано21.10.02 14:16



Благодаря ти!!!

Досега не се бях занимавал с Windows библиотеката, но явно ще се наложи.



Тема Re: Стартиране на външен файлнови [re: lvan]  
Автор PhantomASМодератор (стар ерген®)
Публикувано21.10.02 16:27



Отговора на въпроса си ще намериш във форума - но трябва да потърсиш малко назад!!! Имам предвид цялата реализация с изчакването - просто потърси CreateProcess из съдържанието на темите :-))

---
Е т'ва е живот!


Тема Re: Стартиране на външен файл [re: lvan]  
Автор iNT19 ()
Публикувано26.10.02 21:00



Здрасти, с FindWindow можеш да провериш дали BAT файла е стартиран




*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.