IT天空

 找回密码
 加入我们

手机号码,快捷登录

搜索

[求助] win10系统下不生效,求完善

[复制链接]
ahbzlong 发表于 2020-10-12 12:45:48 | 显示全部楼层 |阅读模式

#NoTrayIcon
#AutoIt3Wrapper_icon=D:\autoit3\Aut2Exe\Icons\FOLDER.ico
;~ #AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseAnsi=y
#AutoIt3Wrapper_Res_Comment=2011-04-08, 00:00
#AutoIt3Wrapper_Res_Description=桌面图标同步程序
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=Amu

#include <GuiListView.au3>
Opt("MustDeclareVars", 1)
Global $hWndManager = WinGetHandle("Program Manager")
Global $hWndDesktop = ControlGetHandle("Program Manager","",1)
If Not IsDeclared("GWL_STYLE") Then Global Const $GWL_STYLE = -16
Global $LVS_Style = _WinAPI_GetWindowLong($hWndDesktop, $GWL_STYLE)
Global $inifile, $iSet, $iRefresh, $SNAPTOGRID

If $CmdLine[0] Then
     For $i = 1 To $CmdLine[0]
         Select
             Case StringRegExp($CmdLine[$i], '^[/-](?i)load[=:].+$|^[/-](?i)l[=:].+$') And Not $inifile         
                 $iSet = 1
                 $inifile = StringRegExpReplace($CmdLine[$i], '^[/-](?i)load[=:]?|^[/-](?i)l[=:]?', "")
                 
             Case StringRegExp($CmdLine[$i], '^[/-](?i)save[=:].+$|^[/-](?i)s[=:].+$') And Not $inifile
                 $iSet = 0
                 $inifile = StringRegExpReplace($CmdLine[$i], '^[/-](?i)save[=:]?|^[/-](?i)s[=:]?', "")
                 
             Case StringRegExp($CmdLine[$i], '^[/-](?i)SnapToGrid[=:]\d+$|^[/-](?i)g[=:]\d+$') And $inifile         
                 $SNAPTOGRID = Number (StringRegExpReplace($CmdLine[$i], '^[/-](?i)SnapToGrid[=:]?|^[/-](?i)g[=:]?', "") )
                 
             Case StringRegExp($CmdLine[$i], '^[/-](?i)Refresh$|^[/-](?i)r$')
                 $iRefresh = 1
                 
             Case StringRegExp($CmdLine[$i], '^[/-](?i)Help$|^[/-](?i)[?h]$')
                 MsgBox(64,"参数帮助!","AutoIcon.exe [</load|/save>=<file>] [/G=<0|1>] [/R]" & @CRLF & "" & @CRLF & _
                     "/load=file 要加载的配置文件。" & @CRLF & "/save=file 要保存的配置文件。" & @CRLF & _
                         "/G=<0|1>   为“0”取消图标对齐到网格,为“1”图标对齐到网格,默认不作更改。" & @CRLF & "/R         相当于桌面右键“刷新”")
                 Exit
             Case Not $inifile
                 $inifile = $CmdLine[$i]
                 If FileExists($inifile) Then $iSet = 1
         EndSelect     
     Next
Else
         $inifile = @ScriptDir &"\icoSpace.ini"
         If FileExists ($inifile) Then
                $iSet = 1
        Else
                $iSet = 0
        EndIf
EndIf

If $iSet Then
     If $SNAPTOGRID Then $SNAPTOGRID = $LVS_EX_SNAPTOGRID
     If IsNumber ($SNAPTOGRID) Then _SendMessage($hWndDesktop, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_SNAPTOGRID, $SNAPTOGRID)
     If BitAND($LVS_Style, $LVS_AUTOARRANGE) Then _WinAPI_SetWindowLong($hWndDesktop, $GWL_STYLE, $LVS_Style - $LVS_AUTOARRANGE );取消自动排列
     
     If $iRefresh Then DllCall("shell32.dll", "none", "SHChangeNotify", "long", 0x8000000, "int", 0, "ptr", 0, "ptr", 0);刷新图标
     _SaveAndLoadIconPos($inifile, 1)
     ;Run("RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters");刷新桌面(通过复制文件的方式替换壁纸文件适用)
Else
     _SaveAndLoadIconPos($inifile)
EndIf

Func _SaveAndLoadIconPos($iFile, $iLoad = 0)
     Local $iCount, $iIndex, $sName, $xy     
     If Not IsHWnd($hWndManager) Then $hWndManager = WinGetHandle("Program Manager")
     If Not IsHWnd($hWndDesktop) Then $hWndDesktop = ControlGetHandle("Program Manager","",1)
     $iCount = ControlListView($hWndManager, "", $hWndDesktop, "GetItemCount")
     If @error Then
         SetError(1)
         Return 0
     EndIf
     If Not $iLoad And FileExists($iFile) Then IniDelete($iFile, "图标位置")
     For $iIndex = 0 to $iCount - 1
         $sName = ControlListView($hWndManager, "", $hWndDesktop,"GetText", $iIndex)
         If $iLoad Then
             $xy = StringSplit (IniRead ($iFile, "图标位置", $sName, ""), ",")
             If $xy[0] = 2 Then _
             _SendMessage($hWndDesktop, $LVM_SETITEMPOSITION, $iIndex, BitOR(BitShift($xy[2], -16), BitAND($xy[1], 0xffff) ) )
         Else;保存图标信息
             $xy = _GUICtrlListView_GetItemPosition($hWndDesktop, $iIndex)
             IniWrite($iFile, "图标位置", $sName, $xy[0] & "," & $xy[1] )
         EndIf     
     Next
     Return 1
EndFunc







win10系统下不生效,有大神给完善下吗
原帖地址:https://www.itsk.com/thread-112873-1-1.html


最近访问 头像模式 列表模式
haithe 发表于 2020-10-16 16:37:48 | 显示全部楼层

活跃 432| 技术 0| 互助 0| 钻石 0

本帖最后由 haithe 于 2020-10-16 16:46 编辑

编译成32位的试试#PRE_UseX64=n
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

ahbzlong

111

活跃

0

技术

0

互助
签到任务
最火的业界新闻
  • 数字人民币和支付宝:支付都得用手机,有啥
  • 国行10月30日见 消息称华为正大量生产Mate4
  • 下一次Windows 10大升级21H2将很快进入测试
  • RTX 3070备货量多出3-5倍:依然不好买
  • Intel 10nm至强确认跳票至明年:发布半年就
  • 三大运营商9月份运营数据:开启“回温”模
  • 英特尔至强处理器路线图泄露 Sapphire Rapi
  • 90亿美元 英特尔把“最初的梦想”卖给了韩
  • 10nm工艺被追捧 十一代酷睿需求翻倍:150款
  • Intel锐炬Xe Max独显性能曝光:略好于NVIDI
炫酷的硬件Show
  • 振华SUPER FLOWER 铜皇450W 铜牌电源
  • 比小更小,Mini-STX装机
  • 华擎X99E-ITX + 银欣ML06 装机记
  • 最强双路泰坦硬管水冷 制作流程
  • 银欣FT02,双路E5工作站
  • 迟到的定制机箱小钢炮清理灰尘
  • 乔思伯UMX1 Plus,小巧的家用综合主机
  • 分体水冷第二弹-Inwin 805 infinity
  • 第一次DIY硬管水冷~~
  • 樱桃MX6.0 青轴 机械键盘 开箱
有趣的美图分享
  • 思念
  • 没想到吧
  • 如何辨别是自己的口罩
  • 科学报道的真相
  • 灭火器也是老演员了
  • 撸猫有风险
  • 叫了15年的老婆了
  • 天冷了,都端着手
  • 俄罗斯人幼崽珍贵影像
  • 时代不同了
关注官方微信
快速回复 返回顶部 返回列表