|
楼主 |
发表于 2017-5-26 13:08:30
|
显示全部楼层
福建省漳州市
我百度了,并搜索了论坛。找到几个和我一样的例子。无一例外的就是 他们的软件高频次的句柄操作。比如我的软件是全年无休运行的,一天取句柄的次数最少35万次。在这种高频率的情况下,取到负数变成很经常,但也绝大部份是正整数。如果只偶尔几次,那都取到的是正值。而且不只精易模块取到的会是负的,其他模块也一样。超文本浏览框.取窗口句柄也存在是负值,而且无数次验证整数型负数句柄是可以操作的。我得出这个结论用了半年,我的软件我整整开发了4年,现在还在修改。因为这个bug困扰了我无数次,我修正以后就没再发现相关问题。我只提供一个精易命令bug,其他相似。
.版本 2
.子程序 窗口_取句柄_模糊 整数型, 公开, 成功返回指定窗口句柄,失败返回0
.参数 窗口标题, 文本型, 可空, 标题支持模糊,如窗口的标题为【精易⌒技术交流群①】你只需要【流群①】取可
.参数 窗口的类名, 文本型, 可空, 类名必须为精确的,或者不填
.局部变量 窗口句柄, 整数型
.局部变量 TitleName, 文本型
.判断循环首 (真)
窗口句柄 = FindWindowExA_文本 (0, 窗口句柄, 窗口的类名, 字符 (0))
.如果 (窗口句柄 > 0)
TitleName = 到小写 (窗口_取标题 (窗口句柄))
.如果真 (寻找文本 (TitleName, 到小写 (窗口标题), , 假) ≠ -1)
返回 (窗口句柄)
.如果真结束
.否则
跳出循环 ()
.如果结束
.判断循环尾 ()
返回 (0)
这种高频次取句柄的情况下,必须是窗口句柄不等于0才对。你可以不相信我,但我相信我的所见所得,因为你们并没有和我相同的经历。 |
|