killmus 发表于 2012-2-6 17:58:01

[已解决]如何隐藏随机文件名的快捷方式?已知目标程序

本帖最后由 killmus 于 2012-2-10 16:00 编辑

因为目标程序每次执行时会在电脑桌面上创建以不同参数运行且文件名随机的快捷方式,所以有什么好的办法隐藏这些快捷方式!

user3000 发表于 2012-2-6 22:54:06

很简单吧?
遍历桌面所有的快捷方式, 如果目标符合则删除或'隐藏'该快捷方式不就是了吗?

nmgwddj 发表于 2012-2-7 00:57:43

同意楼上,把桌面你需要的快捷方式名称放到一个ini文件里。遍历桌面所有快捷方式,如果在ini中不存在,就隐藏或者删除。

killmus 发表于 2012-2-7 11:51:51

回复 3# nmgwddj


    关键是我不会呀,所以请教代码,谢谢了!

nmgwddj 发表于 2012-2-7 16:03:01

回复 4# killmus

先把桌面所有已经记录下的lnk格式文件写入到配置文件中。格式为

qq.lnk=1
菜单.lnk=1
音乐.lnk=1Local $hSearch = FileFindFirstFile(@DesktopCommonDir & "\*.lnk")
If $hSearch = -1 Then
    MsgBox(0, "错误", "没有文件/目录 匹配搜索")
    Exit
EndIf
While 1
    Local $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
        $RDini = IniRead('DeskTopLnk.ini', 'lnk', $sFile, 0)
    If $RDini = 0 Then FileSetAttrib(@DesktopCommonDir & '\' & $sFile, '+H')
WEnd
FileClose($hSearch)

user3000 发表于 2012-2-8 02:59:24

楼上的同志有些误解了楼主的问题了. 用不到 IniRead...
楼主要隐藏的是不确定名字的快捷方式, 但该快捷方式的目标路径则是已知的!
所以, 在用搜索遍历桌面的快捷方式时, 应该用 FileGetShortcut 获取其目标路径, 如果符合才隐藏.
还要注意的是, Windows'桌面' 一般有2个不同的路径,
一个是当前用户的: @DesktopDir , 一个是所有用户共用的: @DesktopCommonDir.

killmus 发表于 2012-2-8 10:06:58

回复 6# user3000


有道理,代码如何写呀?

nmgwddj 发表于 2012-2-8 11:09:36

回复 6# user3000


    的确的确,看来我方法笨拙了,从新写了一段。Local $hSearch = FileFindFirstFile(@DesktopCommonDir & "\*.lnk")
If $hSearch = -1 Then
    MsgBox(0, "错误", "没有文件/目录 匹配搜索")
    Exit
EndIf
While 1
    Local $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
        $FilePath = FileGetShortcut(@DesktopCommonDir & '\' & $sFile)
        If $FilePath = 'c:\windows\explorer.exe' Then FileSetAttrib(@DesktopCommonDir & '\' & $sFile, '+H')
WEnd自行修改目标路径已经桌面路径,我这里用的是alluser的桌面路径。根据LZ的情况修改用户文件夹下的桌面路径

killmus 发表于 2012-2-10 15:59:34

回复 8# nmgwddj


    谢谢了!您的代码十分好用{:face (88):}

razc 发表于 2012-5-13 16:44:16

会出错哟!

fhqbbfcu2050 发表于 2012-6-14 11:28:57

我直接不得用....不知道哪里有错...
页: [1]
查看完整版本: [已解决]如何隐藏随机文件名的快捷方式?已知目标程序