Вверх ↑
Этот топик читают: Гость
Ответов: 817
Рейтинг: 52
#16: 2009-05-07 18:39:09 ЛС | профиль | цитата
tsdima,
Спасибо, ваш пример работатет, сейчас попробую прикрутить к своей схеме
карма: 1

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#17: 2010-05-07 18:23:39 ЛС | профиль | цитата
Интересное совпадение: ровно год спустя таже самая проблема, поймать событие завершения консольной проги. Пока пытаюсь сделать так:
code_18135.txt
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1code_18135.txt [1KB] [284]
Ответов: 817
Рейтинг: 52
#18: 2010-05-07 18:46:43 ЛС | профиль | цитата
Nic,
Лучше варианта чем у tsdima я пока не видел
Смысл в том, что бы запускать cmd.exe а потом передавать строку консольной программе
вот пример tsdima под ваши нужды
code_18136.txt

карма: 1

0
файлы: 1code_18136.txt [683B] [289]
Главный модератор
Ответов: 2999
Рейтинг: 396
#19: 2010-05-07 19:01:29 ЛС | профиль | цитата
Может, конечно, мне не видно, но где в Вашей схеме событие, которое сообщает о завершении консольной программы?
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#20: 2010-05-07 19:04:34 ЛС | профиль | цитата
-= DriveR =- писал(а):
Лучше варианта чем у tsdima я пока не видел

Кстати, я пример tsdima не видел, но делаю точно так же, через cmd с передачей ему строки параметров
------------ Дoбавленo в 19.04:
Nic писал(а):
о завершении консольной программы?

Тут твой пример с отловом запущеного приложения подойдет, и совсем не обязательно для консольной программы, этот метод катит для любого запущенного приложения
карма: 22

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#21: 2010-05-07 19:19:10 ЛС | профиль | цитата
Да, вот так отлично ловит:
code_18137.txt
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1code_18137.txt [877B] [216]
Ответов: 3851
Рейтинг: 159
#22: 2010-05-08 19:03:51 ЛС | профиль | цитата

code_18136.txt не сообщает о завершении.

code_18137.txt не сможет корректно работать с несколькими запущенными копиями.

моё решение (ловить строку-приглашение cmd) тоже не универсально.

может можно дополнить элемент?
карма: 0
начавший
0
Ответов: 3349
Рейтинг: 233
#23: 2010-05-09 19:01:55 ЛС | профиль | цитата
Вот так (два варианта):
1)
Add(MainForm,2468901,77,105)
{
}
Add(WinExec,15109079,406,343)
{
RunEvent=1
Point(onConsoleResult)
Point(doConsoleExec)
Point(onConsoleTerminate)
link(FileName,12522296:Text,[])
}
Add(Edit,12522296,406,287)
{
Left=40
Top=25
Width=130
Text="cmd.exe"
}
Add(Button,93864,133,343)
{
Left=170
Top=25
Caption="RUN"
link(onClick,11315725:doEvent1,[])
}
Add(Message,8374943,436,399)
{
}
Add(Thread,2731762,329,343)
{
FastStop=0
link(onExec,15109079:doExec,[])
}
Add(Timer,948409,259,399)
{
Interval=500
Enable=1
link(onTimer,13397269:doCompare,[])
}
Add(If_else,13397269,329,399)
{
Op2=Integer(0)
link(onTrue,6206199:doEvent1,[])
link(Op1,2731762:Busy,[])
}
Add(Hub,11315725,189,343)
{
link(onEvent1,2731762:doStart,[])
link(onEvent2,948409:doTimer,[(231,356)(231,405)])
}
Add(Hub,6206199,378,399)
{
link(onEvent1,8374943:doMessage,[])
link(onEvent2,948409:doStop,[(404,412)(404,444)(247,444)(247,412)])
}



2)
Add(MultiElement,16007052,196,196)
{
link(Data1,2747888:Var2,[])
link(onEvent1,2426716:doMessage,[])
}
BEGIN_SDK
Add(EditMulti,13957752,21,21)
{
EventCount=1
WorkCount=1
DataCount=1
Width=524
Height=340
link(doWork1,13397269:doCompare,[])
}
Add(Memory,8187464,224,91)
{
MakeExt(Default,,File)
}
Add(DoData,6640278,133,91)
{
link(onEventData,539618:doEvent1,[])
link(Data,6907216:Var2,[(139,55)(48,55)])
}
Add(If_else,13397269,54,84)
{
Op2=Integer(0)
link(onTrue,4614850:doWork2,[(423,90)(423,251)(167,251)(167,167)])
link(onFalse,6640278:doData,[])
link(Op1,6907216:Var3,[])
}
Add(GetDataEx,6907216,42,49)
{
Angle=3
link(Data,13957752:Data1,[])
}
Add(WinExec,13435090,224,161)
{
link(onExec,7588616:doTimer,[])
link(FileName,9529136:Var2,[])
}
Add(Hub,539618,175,91)
{
link(onEvent1,8187464:doValue,[])
link(onEvent2,4614850:doWork1,[(214,104)])
}
Add(HubEx,4614850,210,161)
{
link(onEvent,13435090:doExec,[])
}
Add(Timer,7588616,287,161)
{
Interval=500
Enable=1
link(onTimer,1083864:doFindName,[])
}
Add(EnumProcess,1083864,350,140)
{
Point(Name)
Point(doFindName)
Point(onNotFind)
link(Name,9529136:Var3,[(363,130)])
link(onNotFind,16006124:doEvent1,[])
}
Add(GetDataEx,9529136,224,125)
{
link(Data,8187464:Value,[])
}
Add(Hub,16006124,392,147)
{
link(onEvent1,13957752:onEvent1,[(464,153)(464,27)])
link(onEvent2,7588616:doStop,[(414,160)(414,202)(275,202)(275,174)])
}
END_SDK
Add(Edit,10123833,196,140)
{
Left=40
Top=40
Width=115
Color=-16777203
Font=[MS Sans Serif,8,1,255,1]
Text="cmd.exe"
}
Add(Button,2812684,147,196)
{
Left=155
Top=40
Caption="run"
link(onClick,16007052:doWork1,[])
}
Add(Message,2426716,259,196)
{
Message="Закрыто"
link(Caption,2747888:Var3,[(272,180)])
}
Add(GetDataEx,2747888,196,175)
{
link(Data,10123833:Text,[])
}

карма: 1

1
файлы: 1code_18160.txt [1.8KB] [128]
Голосовали:Andrey
Ответов: 3851
Рейтинг: 159
#24: 2010-05-13 22:01:38 ЛС | профиль | цитата

второй вариант запусти сразу два..
а вот первый работает как надо, совсем забыл про точку busy..
карма: 0
начавший
0
Ответов: 3349
Рейтинг: 233
#25: 2010-05-14 12:44:55 ЛС | профиль | цитата
Andrey, просто недавно понадобилось отловить завершение события, где нет соответствубющей точки.
карма: 1

0
25
Сообщение
...
Прикрепленные файлы
(файлы не залиты)