Вверх ↑
Ответов: 31
Рейтинг: 0
#1: 2017-12-10 20:25:01 ЛС | профиль | цитата
flint2 писал(а):
А как твою схему смотреть, если она свёрнута в трее?
Схема-то не доделана и и точка у всплывающего меню висит в воздухе, а главную форму надо сделать видимой.
Это что должны все колупатся, чтобы посмотреть, что не работает?


Естественно схема не доделана. Если один из ключевых элементов не работает правильно, то куда двигаться дальше???
Вставил в схему окно с сообщением, текст которого берется из нижней точки ProcessID WinInfo, а появляется оно по событию от If The.
Проверить схему можно запуская через нее любое приложение, исправив соответствующее свойство WinExec.

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,336)
{
Data=String()
link(onEventData,1216680:doValue,[(1053,346)(1059,346)])
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=5
link(onEvent1,704221:doStop,[(1001,349)(1001,281)(835,281)(835,216)])
link(onEvent2,14488710:doData,[(1006,356)(1006,342)])
link(onEvent3,2647657:doData,[(1011,363)(1011,398)])
link(onEvent4,8667035:doData,[(1004,370)(1004,310)(982,310)(982,251)])
link(onEvent5,7502309:doMessage,[(1059,377)(1059,216)])
}
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,7023825:Var3,[(1000,236)])
}
Add(GetDataEx,3806134,679,210)
{
link(Data,15375690:Var,[])
}
Add(Message,7502309,1092,210)
{
link(Message,7023825:Var1,[(1098,198)(979,198)])
}
Add(GetDataEx,7023825,973,231)
{
Angle=3
link(Data,5159531:Var3,[])
}

--- Добавлено в 2017-12-10 20:37:41

У меня складывается впечатление, что пока происходит сравнение в If The и выдача из него события, WinInfo успевает перейти к следующему процессу.
Такое может быть???
Если может, то каким образом можно синхронизировать работу WinInfo и If The???
карма: 0

0
Редактировалось 3 раз(а), последний 2017-12-10 20:37:41