Вверх ↑
Этот топик читают: Гость
Ответов: 31
Рейтинг: 0
#1: 2017-12-10 19:13:11 ЛС | профиль | цитата
Делаю первую свою программку в HIASM.
Все достаточно понятно и наглядно.
Но, столкнулся с непонятной для меня проблемой на ровном месте.
Не работает, как мне надо элемент 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
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 16884
Рейтинг: 1239
#2: 2017-12-10 19:19:32 ЛС | профиль | цитата
Схему нужно выкладывать в тегах CODE
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 2059
Рейтинг: 131
#3: 2017-12-10 19:29:15 ЛС | профиль | цитата
И иконки не надо вставлять, когда схему показываешь.
Места может не хватить для основного кода.
карма: 6

0
Ответов: 31
Рейтинг: 0
#4: 2017-12-10 19:37:44 ЛС | профиль | цитата
Извините за неправильное оформление первого поста.
Исправил.
Схему так же подправил.

Редактировалось 1 раз(а), последний 2017-12-10 19:49:41
карма: 0

0
Ответов: 2059
Рейтинг: 131
#5: 2017-12-10 19:52:55 ЛС | профиль | цитата
С точки onWinInfo компонента WinInfo нельзя получить информацию, она нужна только для события.
Получаешь, что надо, с нижних точек и подаёшь на вторую точку Op2 компонента If_else.
На точку MenuItemIdx компонента PopupMenuEx надо чего-то повесить.

Редактировалось 3 раз(а), последний 2017-12-10 20:08:02
карма: 6

0
Ответов: 31
Рейтинг: 0
#6: 2017-12-10 20:05:23 ЛС | профиль | цитата
flint2 писал(а):
С точки onWinInfo компонента WinInfo нельзя получить информацию, она нужна только для события.
Получаешь, что надо, с нижних точек и подаёшь на вторую точку Op2 компонента If_else.


Извиняюсь, я схему уже подправил.
У меня для сравнения берeтся числа, в Op1 из переменной var_Proc_ID и в Op2 из нижней точки ProcessID WinInfo.
Но, If The, тем не менее, выдает событие о равенстве Op1 и Op2 при фактически неравных числах в них.
Что не так???

Редактировалось 1 раз(а), последний 2017-12-10 20:06:34
карма: 0

0
Ответов: 2059
Рейтинг: 131
#7: 2017-12-10 20:15:37 ЛС | профиль | цитата
А как твою схему смотреть, если она свёрнута в трее?
Схема-то не доделана и и точка у всплывающего меню висит в воздухе, а главную форму надо сделать видимой.
Это что должны все колупатся, чтобы посмотреть, что не работает?
при фактически неравных числах в них.
Они равны!
И равны они - nil.


Add(MainForm,10623783,154,112)
{
link(onCreate,14060359:doEvent1,[(208,132)(208,118)])
}
Add(PopupMenuEx,14068898,392,238)
{
IconByIndex=0
Menu=#5:Выход|4:Вход|0:|
Bitmaps=[]
}
Add(WinExec,14874742,371,119)
{
FileName="ProxHTTPSProxy.exe"
Mode=0
Point(ProcessID)
link(onExec,8258297:doData,[(411,125)(411,174)])
}
Add(EnumProcess,6545238,532,154)
{
Point(onFind)
Point(onNotFind)
link(ID,3806134:Var2,[(538,146)(482,146)])
link(onFind,3421579:doBeep,[])
link(onNotFind,5000367:doEvent2,[(571,174)(571,206)(335,206)(335,132)])
}
Add(GlobalVar,15375690,476,98)
{
Name="var_Proc_ID"
Data=Integer(0)
link(onValue,3684219:doEvent1,[(572,104)(572,125)])
}
Add(DoData,8258297,420,168)
{
Data=Integer(0)
link(onEventData,15375690:doValue,[(464,174)(464,104)])
}
Add(Hub,14060359,231,112)
{
link(onEvent1,4893606:doStart,[])
}
Add(Hub,5000367,343,119)
{
InCount=2
OutCount=1
link(onEvent1,14874742:doExec,[])
}
Add(Hub,13933911,497,161)
{
InCount=2
OutCount=1
link(onEvent1,6545238:doFindID,[])
}
Add(Beep,3421579,581,161)
{
Freq=0
Duration=10000
link(onBeep,13933911:doEvent2,[(621,167)(621,200)(488,200)(488,174)])
}
Add(WinTools,293167,343,371)
{
Point(FileName)
Point(doNormal)
Point(isVisible)
link(Handle,264553:Var,[(349,354)(999,354)(999,259)(874,259)])
}
Add(GlobalVar,1216680,868,266)
{
Name="var____Win_Caption"
Data=String()
}
Add(Thread,4893606,294,112)
{
link(onExec,5000367:doEvent1,[(335,118)(335,125)])
}
Add(Between,3305856,315,238)
{
Left=Integer(1)
Right=Integer(1)
link(onTrue,14068898:doPopupHere,[(369,251)(369,244)])
}
Add(WinInfo,6953584,651,210)
{
Point(ProcessID)
link(onWinInfo,4977417:doCompare,[(699,216)(699,272)])
link(Handle,5159531:Var2,[])
}
Add(WinEnum,704221,651,119)
{
VisibleOnly=1
Point(ClassName)
link(onFindWindow,6953584:doWinInfo,[(730,125)(730,171)(639,171)(639,216)])
}
Add(GlobalVar,7513859,868,315)
{
Name="var_Win_ClassName"
Data=String()
}
Add(DoData,14488710,812,266)
{
Data=String()
link(onEventData,1216680:doValue,[])
link(Data,6953584:Caption,[(818,254)(664,254)])
}
Add(DoData,2647657,812,315)
{
Data=String()
link(onEventData,7513859:doValue,[])
link(Data,6953584:ClassName,[(818,304)(657,304)])
}
Add(Hub,3684219,588,119)
{
link(onEvent1,704221:doEnum,[])
link(onEvent2,13933911:doEvent1,[(617,132)(617,149)(485,149)(485,167)])
}
Add(If_else,4977417,714,266)
{
link(onTrue,8424737:doEvent1,[])
link(Op1,583769:Var,[(720,254)(654,254)(654,290)(587,290)])
link(Op2,7141204:Var,[(727,248)(734,248)])
}
Add(Hub,8424737,777,266)
{
OutCount=4
link(onEvent1,704221:doStop,[(798,272)(798,204)(632,204)(632,139)])
link(onEvent2,14488710:doData,[(803,279)(803,272)])
link(onEvent3,2647657:doData,[(808,286)(808,321)])
link(onEvent4,8667035:doData,[(801,293)(801,233)(779,233)(779,174)])
}
Add(GlobalVar,264553,868,231)
{
Name="var____Win_Handle"
Data=Integer(0)
}
Add(GetDataEx,5159531,651,154)
{
link(Data,704221:Handle,[])
}
Add(DoData,8667035,791,168)
{
Data=Integer(0)
link(onEventData,264553:doValue,[(845,174)(845,237)])
link(Data,5159531:Var3,[(797,159)])
}
Add(GetDataEx,3806134,476,133)
{
link(Data,15375690:Var,[])
}
Add(Debug,583769,581,266)
{
link(Data,3806134:Var3,[(587,138)])
}
Add(Debug,7141204,728,217)
{
link(Data,6953584:ProcessID,[(734,205)(702,205)(702,254)(671,254)])
}


Редактировалось 1 раз(а), последний 2017-12-10 20:22:59
карма: 6

0
Ответов: 31
Рейтинг: 0
#8: 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???

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

0
Ответов: 2059
Рейтинг: 131
#9: 2017-12-10 20:42:50 ЛС | профиль | цитата
А ты уверен, что у всех есть ProxHTTPSProxy.exe?

Add(MainForm,10623783,301,112)
{
link(onCreate,14060359:doEvent1,[(355,132)(355,118)])
}
Add(WinExec,14874742,518,119)
{
FileName="ProxHTTPSProxy.exe"
Mode=0
Point(ProcessID)
link(onExec,5174957:doEvent,[])
}
Add(EnumProcess,6545238,679,154)
{
Point(onFind)
Point(onNotFind)
link(ID,3806134:Var2,[(685,146)(629,146)])
link(onFind,3421579:doBeep,[])
link(onNotFind,5000367:doEvent2,[(718,174)(718,206)(482,206)(482,132)])
}
Add(GlobalVar,15375690,623,98)
{
Name="var_Proc_ID"
Data=Integer(0)
link(onValue,3684219:doEvent1,[(719,104)(719,125)])
}
Add(DoData,8258297,567,168)
{
Data=Integer(0)
link(onEventData,15375690:doValue,[(611,174)(611,104)])
}
Add(Hub,14060359,378,112)
{
link(onEvent1,4893606:doStart,[])
}
Add(Hub,5000367,490,119)
{
InCount=2
OutCount=1
link(onEvent1,14874742:doExec,[])
}
Add(Hub,13933911,644,161)
{
InCount=2
OutCount=1
link(onEvent1,6545238:doFindID,[])
}
Add(Beep,3421579,728,161)
{
Freq=0
Duration=10000
link(onBeep,13933911:doEvent2,[(768,167)(768,200)(635,200)(635,174)])
}
Add(GlobalVar,1216680,1015,266)
{
Name="var____Win_Caption"
Data=String()
}
Add(Thread,4893606,441,112)
{
link(onExec,5000367:doEvent1,[(482,118)(482,125)])
}
Add(WinInfo,6953584,798,210)
{
Point(ProcessID)
link(onWinInfo,4977417:doCompare,[(846,216)(846,272)])
link(Handle,5159531:Var2,[])
}
Add(WinEnum,704221,798,119)
{
VisibleOnly=1
Point(ClassName)
link(onFindWindow,6953584:doWinInfo,[(877,125)(877,171)(786,171)(786,216)])
}
Add(GlobalVar,7513859,1015,315)
{
Name="var_Win_ClassName"
Data=String()
}
Add(DoData,14488710,959,259)
{
Data=String()
link(onEventData,1216680:doValue,[(997,269)(1003,269)])
link(Data,6953584:Caption,[(965,254)(811,254)])
}
Add(DoData,2647657,959,315)
{
Data=String()
link(onEventData,7513859:doValue,[])
link(Data,6953584:ClassName,[(965,304)(804,304)])
}
Add(Hub,3684219,735,119)
{
link(onEvent1,704221:doEnum,[])
link(onEvent2,13933911:doEvent1,[(764,132)(764,149)(632,149)(632,167)])
}
Add(If_else,4977417,861,266)
{
link(onTrue,8424737:doEvent1,[])
link(Op1,3806134:Var3,[(867,259)(663,259)(663,138)])
link(Op2,6953584:ProcessID,[(874,248)(818,248)])
}
Add(Hub,8424737,924,266)
{
OutCount=5
link(onEvent1,704221:doStop,[(945,272)(945,204)(779,204)(779,139)])
link(onEvent2,14488710:doData,[(950,279)(950,265)])
link(onEvent3,2647657:doData,[(955,286)(955,321)])
link(onEvent4,8667035:doData,[(948,293)(948,233)(926,233)(926,174)])
link(onEvent5,7502309:doMessage,[(1003,300)(1003,139)])
}
Add(GlobalVar,264553,1015,231)
{
Name="var____Win_Handle"
Data=Integer(0)
}
Add(GetDataEx,5159531,798,154)
{
link(Data,704221:Handle,[])
}
Add(DoData,8667035,938,168)
{
Data=Integer(0)
link(onEventData,264553:doValue,[(992,174)(992,237)])
link(Data,7023825:Var3,[(944,159)])
}
Add(GetDataEx,3806134,623,133)
{
link(Data,15375690:Var,[])
}
Add(Message,7502309,1036,133)
{
link(Message,7023825:Var1,[(1042,121)(923,121)])
}
Add(GetDataEx,7023825,917,154)
{
Angle=3
link(Data,5159531:Var3,[])
}
Add(Debug,5174957,567,119)
{
}

карма: 6

0
Ответов: 31
Рейтинг: 0
#10: 2017-12-10 20:45:19 ЛС | профиль | цитата
flint2 писал(а):
А ты уверен, что у всех есть ProxHTTPSProxy.exe?
...


Можно запускать любое приложение, исправив соответствующее свойство WinExec.
Это сути моего вопроса не меняет.
карма: 0

0
Ответов: 2059
Рейтинг: 131
#11: 2017-12-10 20:52:52 ЛС | профиль | цитата
Можно запускать любое приложение, исправив соответствующее свойство WinExec.
Это сути моего вопроса не меняет.

Так и сделал бы так изначально.
Это играем, а это не играем, а здесь пятно от селёдки.
Надо выкладывать кусок схемы, который тебя интересует.
Формы не видно, один значок в трее, который ни на что не реагирует и закрыть его нельзя.
Чего-то пропала охота разбираться с таким подходом.
карма: 6

0
Ответов: 31
Рейтинг: 0
#12: 2017-12-10 21:04:47 ЛС | профиль | цитата
flint2 писал(а):

...
Чего-то пропала охота разбираться с таким подходом.


Спасибо за участие.
Жалко, что не смогли помочь. Возможно кто либо иной поможет мне разораться с моим вопросом.

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

0
Ответов: 2059
Рейтинг: 131
#13: 2017-12-10 21:14:23 ЛС | профиль | цитата
А это так и нужно, чтобы первый операнд был равным нулю?
И ищешь нулевой ProcessID и ID самого процесса тоже 0?
А итерации потока, запуск exe, происходят каждую секунду?

Редактировалось 3 раз(а), последний 2017-12-10 21:26:24
карма: 6

0
Ответов: 31
Рейтинг: 0
#14: 2017-12-10 21:29:03 ЛС | профиль | цитата
flint2 писал(а):
А это так и нужно, чтобы первый операнд был равным нулю?
И ищешь нулевой ProcessID?


Первый операнд я получаю из переменной var_Proc_ID.
На ее выходе значение ID соответствует реальному процессу запущенной программы, я не раз и не два проверял.
Вы почему решили, что на Op1 подается 0???
карма: 0

0
Ответов: 2059
Рейтинг: 131
#15: 2017-12-10 21:49:21 ЛС | профиль | цитата
Первый операнд я получаю из переменной var_Proc_ID.

О куда деньги берёшь - из тумбочки.
А кто в тумбочку кладёт?
...
Откуда в var_Proc_ID чего возьмётся, если в DoData 0 записан?
Зачем он там стоит? наверное его верхнюю точку надо соединить с нижней WinExec.
В схеме этого нет. Изначально надо по человечески оформлять вопросы.

Add(WinExec,14874742,518,119)
{
FileName="notepad.exe"
Mode=0
Point(ProcessID)
link(onExec,8258297:doData,[(558,125)(558,174)])
}
Add(EnumProcess,6545238,679,154)
{
Point(onFind)
Point(onNotFind)
link(ID,3806134:Var2,[(685,146)(629,146)])
}
Add(GlobalVar,15375690,623,98)
{
Name="var_Proc_ID"
Data=Integer(0)
}
Add(DoData,8258297,567,168)
{
Data=Integer(0)
link(onEventData,15375690:doValue,[(611,174)(611,104)])
}
Add(Hub,13933911,644,161)
{
InCount=2
OutCount=1
link(onEvent1,6545238:doFindID,[])
}
Add(GetDataEx,3806134,623,133)
{
link(Data,15375690:Var,[])
}

Чего не каснись - всё не правильно и вся топология тоже.
Надо схему делать заново и по кускам, а не сразу в трей прятать!

Редактировалось 4 раз(а), последний 2017-12-10 22:02:26
карма: 6

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