找回密码
 加入
搜索
楼主: 131738

[AU3基础] [已解决]看不懂的 If 循环。。。。。。

 火... [复制链接]
 楼主| 发表于 2012-6-11 19:37:05 | 显示全部楼层
我这测试没有返回 -1 的,空图标也是返回的 0 ,那样的话,原作

这部分就没问题…
afan 发表于 2012-6-11 19:32


请看看我 14 楼的回复。。。。
发表于 2012-6-11 19:44:13 | 显示全部楼层
回复 15# afan

空图标? 我用不存在的文件或没有包含图标的文件再进行测试, 结果还是返回 -1 呀?
会不会又是AUTOIT版本搞出来的差异呢?
我是 3.3.7.14 及 SVN 3.3.9.4 上做的测试.
 楼主| 发表于 2012-6-11 19:59:53 | 显示全部楼层
我这测试没有返回 -1 的,空图标也是返回的 0 ,那样的话,原作

这部分就没问题…
afan 发表于 2012-6-11 19:32


看测试截图
1.运行原编辑的exe程序:


2.运行汉化并修改循环语句的编译程序:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-6-11 20:05:35 | 显示全部楼层
回复 13# happytc


    注册日期虽然一样,但是对于编程,我比你却差得远了,向你学习才是。
 楼主| 发表于 2012-6-11 20:13:27 | 显示全部楼层
本帖最后由 131738 于 2012-6-11 20:14 编辑
回复  131738


    应该是担心某DLL'做工'不好, 预防提取它的图标时, 即使没到最后一个图标也出错的这 ...
user3000 发表于 2012-6-11 15:31


会过神来了,完成`全部图标提取后,继续循环就会继续返回4或5个 -1(但 0 肯定不行)满足条件退出循环!
发表于 2012-6-11 20:28:23 | 显示全部楼层
本帖最后由 afan 于 2012-6-11 22:05 编辑

回复 20# 131738


    那样似乎并不准确,这样试试:
#include <GuiListView.au3>
#include <GuiImageList.au3>

Local $imagefile = @SystemDir & '\shell32.dll'

Local $hGui = GUICreate('', 560, 280)
Local $iListView = GUICtrlCreateListView('', 5, 5, 550, 270)
_GUICtrlListView_SetView($iListView, 1)
Local $PicID = 0
Local $hIconImage = _GUIImageList_Create(32, 32, 5, 3)
_GUICtrlListView_SetImageList($iListView, $hIconImage, 0)
Local $vTotal = _WinAPI_ExtractIconEx($imagefile, -1, 0, 0, 0), $vTotalBak = $vTotal
Local $ts = TimerInit()
While $vTotal
        _GUIImageList_AddIcon($hIconImage, $imagefile, $PicID, 1)
        _GUICtrlListView_AddItem($iListView, $PicID, $PicID)
        $vTotal -= 1
        $PicID += 1
Wend
Local $te = Round(TimerDiff($ts))
WinSetTitle($hGui, '', '包含图标数量:' & $vTotalBak & '; 耗时:' & $te & ' 毫秒。')
GUISetState()

While GUIGetMsg() + 3
WEnd
或者
#include <GuiListView.au3>
#include <GuiImageList.au3>

Local $imagefile = @SystemDir & '\shell32.dll'

Local $hGui = GUICreate('', 560, 280)
Local $iListView = GUICtrlCreateListView('', 5, 5, 550, 270)
_GUICtrlListView_SetView($iListView, 1)
Local $hIconImage = _GUIImageList_Create(32, 32, 5, 3)
_GUICtrlListView_SetImageList($iListView, $hIconImage, 0)
Local $vTotal = _WinAPI_ExtractIconEx($imagefile, -1, 0, 0, 0), $vTotalBak = $vTotal, $PicID
Local $ts = TimerInit()
For $PicID = 0 To $vTotal - 1
        _GUIImageList_AddIcon($hIconImage, $imagefile, $PicID, 1)
        _GUICtrlListView_AddItem($iListView, $PicID, $PicID)
Next
Local $te = Round(TimerDiff($ts))
WinSetTitle($hGui, '', '包含图标数量:' & $vTotalBak & '; 耗时:' & $te & ' 毫秒。')
GUISetState()

While GUIGetMsg() + 3
WEnd
发表于 2012-6-11 20:29:07 | 显示全部楼层
回复 18# 131738

前辈用的什么机器? 竟然要40秒, 相关代码应该还处理别的事情吧?
我单单显示该文件的图标, 只要5秒左右.

另外, 连A大也说空图标是返回0, 我真怀疑又是AU3版本不一致弄出的问题了.
发表于 2012-6-11 20:36:41 | 显示全部楼层
“$Limiter = 5” “限制5” 在我看来不但不准,而且多余。
“For $iCntRow = 0 To 9999999”这个就更无语了…
发表于 2012-6-11 20:43:17 | 显示全部楼层
回复  131738

前辈用的什么机器? 竟然要40秒, 相关代码应该还处理别的事情吧?
我单单显示该文件的图标 ...
user3000 发表于 2012-6-11 20:29



    上传那个dll看看…
发表于 2012-6-11 20:47:50 | 显示全部楼层
元老遇到新问题,围观一下
发表于 2012-6-11 20:51:28 | 显示全部楼层
回复 24# afan

好咧, 来了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-6-11 20:59:44 | 显示全部楼层
回复 26# user3000


    嗯,我的差不多,6、7秒

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2012-6-11 21:00:54 | 显示全部楼层
元老遇到新问题,围观一下
顽固不化 发表于 2012-6-11 20:47


谢谢关注,不是遇到问题,我修改源代码解决了,这里只是想讨教这个老外的IF循环。。。
 楼主| 发表于 2012-6-11 21:04:35 | 显示全部楼层
回复  131738

前辈用的什么机器? 竟然要40秒, 相关代码应该还处理别的事情吧?
我单单显示该文件的图标 ...
user3000 发表于 2012-6-11 20:29


瞎估的,时间概念不足,有点老年痴呆。。。。
发表于 2012-6-11 21:25:46 | 显示全部楼层
回复 29# 131738


   哈哈!
   前几天网购个眼罩, 要先付款, 当时就用网银支付了.  
   因为那几天值夜班, 所以叫别人代收, 但还傻傻地多给她一份钱, 说是货款...
   2天后,东西还没到, 一查竟然从北京发的. 我就跟她说了.
   她问, 这边的京东不是由广州出货吗?
   我说, 是啊. 但这回是第三方发货.
   她又问: 第三方不是先交钱吗? 你还给我钱?
   好像是哦! 我当时就有点凌乱了.
   好吧, 我也得承认自己也老年痴呆了!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-18 17:37 , Processed in 0.073705 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表