yang3114 发表于 2012-4-11 16:44:01

[已解决]如何检测桌面上的图标数量

本帖最后由 yang3114 于 2012-4-11 17:12 编辑

如何检测桌面上的图标数量

user3000 发表于 2012-4-11 16:56:26

下面函数是获取并保存桌面图标位置的,$iCount - 1 就是桌面图标数量!
在论坛搜索 '桌面图标' 会获得更多信息.(友情提示: 善用论坛搜索, 学习效果事半功倍)Func _SaveIconCoor()
        $var = FileSaveDialog("选择保存的位置", @ScriptDir, "配置文件(*.ini)", 16)
        If Not ($var = "") Then
                If FileExists($var) Then FileDelete($var)
                If Not (StringRight($var, 4) = ".ini") Then $var = $var & ".ini"
                $iCount = ControlListView($hWndManager, "", $hWndDesktop, "GetItemCount")
                For $iIndex = 0 To $iCount - 1
                        $sName = ControlListView($hWndManager, "", $hWndDesktop, "GetText", $iIndex)
                        $xy = _GUICtrlListView_GetItemPosition($hWndDesktop, $iIndex)
                        IniWrite($var, "图标位置", $iIndex, $sName & "|" & $xy & "|" & $xy)
                Next
                MsgBox(0, "成功", "保存成功", 1)
        EndIf
EndFunc   ;==>_SaveIconCoor

apoorman1986 发表于 2012-4-11 17:05:45

试一下我的:

; 显示当前目录所有文件的文件名
Local $search = FileFindFirstFile(@DesktopDir&"\*.*")

; 检查搜索是否成功
If $search = -1 Then
    MsgBox(0, "错误", "没有匹配搜索模式的文件或目录")
    Exit
EndIf
Local $n = 1
While 1
    Local $file = FileFindNextFile($search)
        $n+=1
    If @error Then ExitLoop
WEnd
FileClose($search)
MsgBox(0,"","共找到"&$n&"个桌面图标")

yang3114 发表于 2012-4-11 17:12:27

楼上的代码,很好,谢谢!

user3000 发表于 2012-4-11 17:13:25

回复 3# apoorman1986
一般使用的'桌面目录"有两个:
@DesktopCommonDir
@DesktopDir

zch11230 发表于 2012-4-11 22:21:23

回复 3# apoorman1986


    但是这样不会计算如计算机 回收站 网上邻居 这类非.lnk快捷方式的图标$iCount = ControlListView("Program Manager", "", "SysListView321", "GetItemCount")
MsgBox (0,"图标数目",$iCount)把user3000提供的代码其中的关键部分提取来单独测试 在WIN7上通过 不知道还有什么不妥没有。
页: [1]
查看完整版本: [已解决]如何检测桌面上的图标数量