// прощелкать объекты// ищем объект по имени int FindHendlMessage(int Current ,string findname ){string p1="012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234";int temp = GetWindow( Current , GW_CHILD );// ищемwhile( temp !=NULL){
GetWindowTextA( temp , p1 ,StringLen( findname )+1);if( p1 == findname)// проверим а не тот ли это объект ! имя которог омы знаем{return( temp );// это то что мы ищем}int r = FindHendlKey( temp , findname );// не значит не она , обойдем ее дочерние объектыif( r !=NULL){return( r);// опс нашли дочку}
temp = GetWindow( temp , GW_HWNDNEXT );// проверяем следующий объект, дочерний }return(0);}// тут рекурсия - стек должен быть с запасом
// вставить в начало - мне хватало 4048
#property stacksize 4048 // внимание это обязательно для рекурсии ( пока не замеченно косяков при стеке 4048
int FindHendlKey(int Current ,string findname ){string p1="012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234";int temp = GetWindow( Current , GW_CHILD );// ищемwhile( temp !=NULL){
GetWindowTextA( temp , p1 ,StringLen( findname )+1);if( p1 == findname)// проверим а не тот ли это объект
{return( temp );// это то что мы ищем}int r = FindHendlKey( temp , findname );// не значит не она , обойдем ее дочерние объектыif( r !=NULL){return( r);// опс нашли дочку}
temp = GetWindow( temp , GW_HWNDNEXT );// проверяем следующий объект, дочерний }return(0);}
只剩下几件事要做了,就像他们说的,解决几个案件。
这个WinAPI不适合专业人士使用,这是我第一次使用它。
我卡在两件事上。
1.我怎样才能在有专家顾问列表 的ComboBox中按名称取回专家顾问的行号?
我是这样做的
我得到的是零,就这样了。我在InqSoft Windows Scanner程序中做了同样的事情,它返回了该行的编号。
然后我用函数
一切都在正常工作,但我不知道如何得到这个数字12。
2.这是一个插入日期的问题。YuraZ,你似乎已经解释了,但我不明白如何接近你所解释的。我也搞不清楚如何用点击器来做。
帮助我完成自动优化器的运行,我答应把代码发给我,然后我想附加解析存储的HTML和替换专家顾问中的结果。后者没有问题,推出测试器是一个痛苦的过程。我已经学会了如何将复选框放在需要的地方,如何点击按钮,但我无法掌握我所描述的问题。
在完成和测试之后,我想把它写成一篇文章,我想对很多人来说,这个功能会很有用,虽然不是开发人员会错过这个信息的事实。
。
可以选择
不需要计算有多少行,也不需要费心去计算有多少行。
只需在列表中搜索我们的专家 "我们的英雄专家 "即可。
从逻辑上讲,如果你做了一个计数器,你也可以从列表中提升数字
只需找到列表的顶部并向下运行,或找到底部并向上运行。
谢谢你,我将进一步研究它。
只剩下几件事要做了,就像他们说的,解决几个案件。
救命啊,伙计们,这个WinAPI不适合专业人员使用。 我是第一次使用它。
代码是正确的,所以它应该工作。我的这个代码工作起来没有任何问题。
当发生错误时,该函数通常返回-1,而不是0。也许代码中存在一些错误。
另一种方法是检查SendMessageA()函数的正确声明,搜索一个字符串。
最后一个参数应该被声明为字符串。如果它默认为整数,那么编译器将
将无误地吞下该代码,但该函数将不能正常工作。
代码是正确的,所以它应该工作。我的这个代码工作起来没有任何问题。
当发生错误时,该函数通常返回-1,而不是0。也许代码中存在一些错误。
另外,你必须检查SendMessageA()函数的正确声明,以搜索一个字符串。
最后一个参数应该被声明为字符串。如果它默认为整数,那么编译器将
会吞下代码而不出错,但该函数会错误地工作。
在你的终端上试试我的代码,也许我的终端或库被搞坏了。
我的专家选择代码与你的相同。
这里sExpertName是专家顾问的名字,是一个字符串。
为了实验的纯粹性,我运行了你的代码--一切正常。
我的专家选择代码与你的相同。
这里sExpertName是专家顾问的名字,是一个字符串。
为了实验的纯粹性,我运行了你的代码--一切正常。
这是一个奇怪的事情...这对我来说是行不通的。
它是什么Windows,什么服务包?
在我的电脑上和网络上看了一下user32.dll库文件,有一堆不同大小的文件。
也许我的问题是图书馆本身是歪的。
Ilnur,如果把你的库的版本贴在这里不难的话,我可以试着用它来测试。
Yuraz,你设法通过Ilnur的代码或我的代码找到并替换了函数名称,如果不难,也可以发布你的库。
在我的电脑上和网络上看了一下user32.dll库文件,有一堆不同大小的文件。
也许我的问题是图书馆本身是歪的。
Ilnur,如果你不介意把你的库的版本贴在这里,我可以试着用它来测试。
Yuraz,你发现并替换了Ilnur或我的代码中的函数名称,如果不困难你的库也会暴露。
SP2 XPPRO
如果你的机器上安装了很多软件,任何事情都可能发生。
如果目标操作系统是一个稳定的、经过验证的小型任务集或一个
即很多程序没有被持续运行,很多东西没有被安装。
一般来说,没有问题