Все достаточно понятно и наглядно.
Но, столкнулся с непонятной для меня проблемой на ровном месте.
Не работает, как мне надо элемент If The.
Не могу понять в чем дело, что я делаю не так???
Помещаю схему, в раках которой If The должен сравнить два значения дескрипторов процессов и при совпадении выдать событие. Но событие о совпадении значений дескрипторов If The выдает для фактически неравных значений.
Add(MainForm,10623783,357,189)
{
Visible=1
link(onCreate,14060359:doEvent1,[(411,209)(411,195)])
}
Add(TrayIcon,9072061,406,315)
{
FormHook=0
ShowWORemoveIcon=0
Point(doAddTrayIcon)
Point(onAutoRecreate)
link(onClick,3305856:doBetween,[])
link(onDblClick,293167:doVisible,[(450,328)(450,454)])
}
Add(PopupMenuEx,14068898,595,315)
{
IconByIndex=0
Menu=#5:Выход|4:Вход|0:|
Bitmaps=[]
}
Add(WinExec,14874742,574,196)
{
FileName="ProxHTTPSProxy.exe"
Mode=0
Point(ProcessID)
link(onExec,8258297:doData,[(614,202)(614,251)])
}
Add(EnumProcess,6545238,735,231)
{
Point(onFind)
Point(onNotFind)
link(ID,3806134:Var2,[(741,223)(685,223)])
link(onFind,3421579:doBeep,[])
link(onNotFind,5000367:doEvent2,[(774,251)(774,283)(538,283)(538,209)])
}
Add(GlobalVar,15375690,679,175)
{
Name="var_Proc_ID"
Data=Integer(0)
link(onValue,3684219:doEvent1,[(775,181)(775,202)])
}
Add(DoData,8258297,623,245)
{
Data=Integer(0)
link(onEventData,15375690:doValue,[(667,251)(667,181)])
}
Add(Hub,14060359,434,189)
{
link(onEvent1,4893606:doStart,[])
link(onEvent2,9072061:doAddTrayIcon,[(460,202)(460,304)(394,304)(394,342)])
}
Add(Hub,5000367,546,196)
{
InCount=2
OutCount=1
link(onEvent1,14874742:doExec,[])
}
Add(Hub,13933911,700,238)
{
InCount=2
OutCount=1
link(onEvent1,6545238:doFindID,[])
}
Add(Beep,3421579,784,238)
{
Freq=0
Duration=10000
link(onBeep,13933911:doEvent2,[(824,244)(824,277)(691,277)(691,251)])
}
Add(WinTools,293167,546,448)
{
Point(FileName)
Point(doNormal)
Point(isVisible)
link(Handle,264553:Var,[(552,431)(1202,431)(1202,336)(1077,336)])
}
Add(FindWindow,10012660,1050,511)
{
ClassName="ConsoleWindowClass"
Caption="ProxHTTPSProxyMII"
link(onFind,10012660:doFindChild,[(1094,517)(1094,556)(1038,556)(1038,524)])
}
Add(GlobalVar,1216680,1071,343)
{
Name="var____Win_Caption"
Data=String()
}
Add(Thread,4893606,497,189)
{
link(onExec,5000367:doEvent1,[(538,195)(538,202)])
}
Add(Between,3305856,518,315)
{
Left=Integer(1)
Right=Integer(1)
link(onTrue,14068898:doPopupHere,[(572,328)(572,321)])
}
Add(WinInfo,6953584,854,287)
{
Point(ProcessID)
link(onWinInfo,4977417:doCompare,[(902,293)(902,349)])
link(Handle,5159531:Var2,[])
}
Add(WinEnum,704221,854,196)
{
VisibleOnly=1
Point(ClassName)
link(onFindWindow,6953584:doWinInfo,[(933,202)(933,248)(842,248)(842,293)])
}
Add(GlobalVar,7513859,1071,392)
{
Name="var_Win_ClassName"
Data=String()
}
Add(DoData,14488710,1015,343)
{
Data=String()
link(onEventData,1216680:doValue,[])
link(Data,6953584:Caption,[(1021,331)(867,331)])
}
Add(DoData,2647657,1015,392)
{
Data=String()
link(onEventData,7513859:doValue,[])
link(Data,6953584:ClassName,[(1021,381)(860,381)])
}
Add(Hub,3684219,791,196)
{
link(onEvent1,704221:doEnum,[])
link(onEvent2,13933911:doEvent1,[(820,209)(820,226)(688,226)(688,244)])
}
Add(If_else,4977417,917,343)
{
link(onTrue,8424737:doEvent1,[])
link(Op1,3806134:Var3,[(923,336)(719,336)(719,215)])
link(Op2,6953584:ProcessID,[(930,325)(874,325)])
}
Add(Hub,8424737,980,343)
{
OutCount=4
link(onEvent1,704221:doStop,[(1001,349)(1001,281)(835,281)(835,216)])
link(onEvent2,14488710:doData,[(1006,356)(1006,349)])
link(onEvent3,2647657:doData,[(1011,363)(1011,398)])
link(onEvent4,8667035:doData,[(1004,370)(1004,310)(982,310)(982,251)])
}
Add(GlobalVar,264553,1071,308)
{
Name="var____Win_Handle"
Data=Integer(0)
}
Add(GetDataEx,5159531,854,231)
{
link(Data,704221:Handle,[])
}
Add(DoData,8667035,994,245)
{
Data=Integer(0)
link(onEventData,264553:doValue,[(1048,251)(1048,314)])
link(Data,5159531:Var3,[(1000,236)])
}
Add(GetDataEx,3806134,679,210)
{
link(Data,15375690:Var,[])
}
Что я делаю не так???
Заранее благодарю за помощь и советы.
Редактировалось 2 раз(а), последний 2017-12-10 19:48:24