如何清理桌面无效的快捷键
本帖最后由 wjscxs 于 2010-5-29 05:12 编辑求能够清理桌面无效快捷键的au3源码,能否用FileGetShortcut 实现??? $aShoutcut = _filelisttoarray(@desktopcommdir & ".lnk")
for $i in $aShoutcut
中间这段没找到相应函数,如何读取快捷方式目标
if FileExists(上面的目标位置)=0 then
filedelete()
endif
next 怎么判断这个shortcut icon是有效的呢 你指的这个有效是什么意思,不是寻找目标文件吗? $search = FileFindFirstFile(@DesktopDir & "\*.lnk")
While 1
$file = FileFindNextFile($search)
$cut = FileGetShortcut(@DesktopDir & '\' & $file)
If @error Then ExitLoop
If FileExists($cut) = 0 Then
FileDelete(@DesktopDir & '\' & $file)
EndIf
WEnd
FileClose($search) 本帖最后由 netegg 于 2009-8-26 13:29 编辑
要不这样,
$file= ""
shellexecute($file)
if @error then filedelete($file)
不过这样有一点不好,要把快捷方式对应的程序,都启动一遍 稍等等,已经求助了,我对api不是很熟,不过印象中好像有这个函数 5楼代码可用。FileGetShortcut返回快捷方式内容,检查目标文件是否存在。
#include <File.au3>
CheckLnk(@DesktopCommonDir)
CheckLnk(@DesktopDir)
Exit
Func CheckLnk($sPath)
Local $aLnkList, $aLnkInfo
$aLnkList = _FileListToArray($sPath, "*.lnk", 1) ; 获取快捷方式列表
If @error Then Return
For $i = 1 To $aLnkList
$aLnkInfo = FileGetShortcut($sPath & "\" & $aLnkList[$i]) ; 获取快捷方式内容
If NOT FileExists($aLnkInfo) Then FileRecycle($sPath & "\" & $aLnkList[$i]) ; 目标文件不存在则删除
Next
Return 1
EndFunc ;==>CheckLnk
网蛋走进了误区 越走越远
页:
[1]