Вверх ↑
Ответов: 31
Рейтинг: 0
#1: 2017-12-13 02:10:36 ЛС | профиль | цитата
flint2 писал(а):


Add(Button,1566307,294,182)
{
Left=20
Top=5
Width=120
Caption="Запустить и следить"
link(onClick,14589106:doStart,[])
}
Add(WinExec,12004781,532,182)
{
FileName="notepad.exe"
Point(ProcessID)
link(onExec,320100:doSynchronize,[])
}
Add(Thread,14589106,406,182)
{
Delay=0
FastStop=0
Point(doStopFlag)
link(onExec,12004781:doExec,[])
}
Add(Memo,9143625,399,63)
{
Left=20
Top=40
Width=325
Height=170
ScrollBars=2
}
Add(LineBreakEx,14378329,322,63)
{
Caption="log"
Type=1
link(OnEvent,9143625:doAdd,[])
}
Add(Synchronize,320100,609,182)
{
link(onSync,9126657:doData,[])
}
Add(LineBreakEx,6999316,714,182)
{
Caption="log"
}
Add(DoData,9126657,665,182)
{
Data=String(Завершилась - повторяем запуск)
link(onEventData,6999316:doWork,[])
}



Что же это Вы пытаетесь сфинтить, переведя WinExec в режим Async вместо Wait???
Теперь WinExec НЕ следит за запущенным процессом. А кто должен следить??? Дядя???
Я же уже писал:

kichrot писал(а):

Судя по всему элемент WinExec содержит ошибки в реализации. По крайней мере его функционал расходится с заявленным в справке. Конкретно в справке написано: "onExec - Событие происходит в случае успешного запуска программы методом doExec". По факту:

1) если выставить значение свойства RunEvent равное
Wait то событие onExec наступает не при каждом запуске процесса элементом WinExec, а после прекращения всего цикла итераций в элементе WinExec.

2) событие onExec наступает не по факту запуска процесса, а по факту прекращения его существования.

3) корректно событие onExec наступает только при RunEvent равном Async
...


Так, что неправильно работает WinExec, не выдает в режиме Wait событие о запуске внешнего процесса. Убедились???
карма: 0

0
Редактировалось 1 раз(а), последний 2017-12-13 02:14:11