令狐大虾 发表于 2023-4-24 17:59:10

[已解决] 新版AU3编译后代码中的注销后自删除命令执行后无法注销,烦请大伙帮忙看看

本帖最后由 令狐大虾 于 2023-4-24 22:27 编辑

如题

If @OSArch = 'X64' And @OSVersion = 'WIN_10' Then
      ;默认禁止自动排列图标并将图标与网格对齐(桌面状态下导入生效针对系统优化程序在登录段导入无效)
    RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags\1\Desktop', 'FFlags', 'REG_DWORD', '0x40200224')
      ;禁止图标锁定在任务栏
      RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband', 'Favorites', 'REG_BINARY', '0xff')
      Local $iPid = ProcessExists('explorer.exe')
                If $iPid Then ProcessClose($iPid)
      If Not ProcessExists('explorer.exe') Then Run(@WindowsDir & '\explorer.exe')
      ;-----------------------------------------------
      ;若已移除Edge封包则删除桌面Microsoft Edge快捷方式残留(奇怪@Desktop会删除导航窗格主文件夹下的桌面)
      ;If Not FileExists(@WindowsDir & '\SystemApps\Microsoft.MicrosoftEdgeDevToolsClient_8wekyb3d8bbwe') Then FileDelete(@Desktopdir & '\Microsoft Edge.lnk')
      ;---------------------------------------------------------
      ;启用Aero主题
      IfFileExists(@WindowsDir & '\Resources\Themes\Win7 Aero.theme') Then
                ShellExecute(@WindowsDir & '\Resources\Themes\Win7 Aero.theme', '', @SW_HIDE)
            Dim $i
            While 1
                  IfWinWaitActive('设置','',1) Then
                        ProcessClose('SystemSettings.exe')
                              ExitLoop
                  EndIf
                  $i+=1
                  If $i > 10 Then ExitLoop
                  sleep(1000)
            WEnd
      EndIf
    ;---------------------------------------------------------
      Send ("{F5}");==>桌面右键刷新(刷新处理后的桌面图标排列)
      ;---------------------------------------------------------
      ;删除首次进桌面后调用的程序
      RegDelete('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run')
      RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run')
      ;-------------------------------------------------------------------------------------------------------
      ;判断计算机类型并打开数字小键盘
      $strComputer = "."
      $objWMIService = ObjGet('winmgmts:{impersonationLevel=impersonate}!\\' & $strComputer & "\root\cimv2")
      $colChassis = $objWMIService.ExecQuery("Select * from Win32_SystemEnclosure")
      For $objChassis in $colChassis
      For $strChassisType in $objChassis.ChassisTypes
                if $strChassisType = 8 or $strChassisType = 9 or $strChassisType = 10 then Send('{NUMLOCK OFF}') ;笔记本
                if $strChassisType = 3 or $strChassisType = 4 or $strChassisType = 5 or $strChassisType = 6 or $strChassisType = 7 then Send('{NUMLOCK ON}') ;台式机
      Next
      next
      ;-------------------------------------------------------------------------------------------------------
      ;OneDrive卸载程序
      If FileExists(@WindowsDir & '\SysWOW64\OneDriveSetup.exe') Then
            ProgressOn('OneDrive卸载程序','')
                ProgressSet(30,'卸载进行中请稍后.......','')
                ProcessClose('OneDrive.exe')
                RunWait(@ComSpec & ' /c ' & '"%SYSTEMROOT%\SysWOW64\OneDriveSetup.exe" /uninstall', '', @SW_HIDE)
                RunWait(@ComSpec & ' /c ' & '@echo y|takeown /f "%SYSTEMROOT%\SysWOW64\OneDriveSetup.exe" & @echo y|icacls "%SYSTEMROOT%\SysWOW64\OneDriveSetup.exe" /grant administrators:F','',@SW_HIDE)
                RunWait(@ComSpec & ' /c ' & 'ren "%SYSTEMROOT%\SysWOW64\OneDriveSetup.exe" "OneDriveSetup.bak"& del /q/a/s/f "%SYSTEMROOT%\SysWOW64\OneDriveSetup.bak"','',@SW_HIDE)
                RunWait(@ComSpec & ' /c ' & 'del /q/a/s/f "%SYSTEMROOT%\SysWOW64\OneDriveSettingSyncProvider.dll"&del /q/a/s/f "%SYSTEMROOT%\System32\OneDriveSettingSyncProvider.dll"','',@SW_HIDE)
                RunWait(@ComSpec & ' /c ' & '@echo y|takeown /f "%USERPROFILE%\AppData\Local\Microsoft\OneDrive\*.*" /r &@echo y|icacls "%USERPROFILE%\AppData\Local\Microsoft\OneDrive\*.*" /T /grant administrators:F','',@SW_HIDE)
                RunWait(@ComSpec & ' /c ' & 'rd /q/s "%USERPROFILE%\AppData\Local\Microsoft\OneDrive" ','',@SW_HIDE)
                RunWait(@ComSpec & ' /c ' & 'rd /q/s "%USERPROFILE%\OneDrive" & rd /q/s "%ProgramData%\Microsoft OneDrive"','',@SW_HIDE)
                RunWait(@ComSpec & ' /c ' & 'del /q/a/s/f "%USERPROFILE%\Links\OneDrive.lnk"', '', @SW_HIDE)
                RunWait(@ComSpec & ' /c ' & 'del /q/a/s/f "%AppData%\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk"','',@SW_HIDE)
                RegDelete('HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}')
                RegDelete('HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}')
                RegDelete('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 'OneDrive')
                ProgressSet(70,'')
                Sleep (500)
                ProgressSet(100,'卸载完毕')
                Sleep (500)
            ProgressOff()
      EndIf
      ;--------------------------------------------------------------------------------------------------------------------
      If FileExists ('D:\') Then
            $Flag = MsgBox(1+64,'我的文档转移程序','是否转移我的文档到D盘?'&@CRLF&@CRLF&'默认5秒之后自动转移',5)
            If $Flag > 1 Then
                  MsgBox(0,'退出提示:','你没有转移我的文档',1)
            Else
                  ProgressOn('','')
                  ProgressSet(30,'文件处理中请稍后.......','')
                        ;注入注册表路径
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', '{374DE290-123F-4565-9164-39C4925E467B}', 'REG_SZ', 'D:\Downloads')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', 'Desktop', 'REG_SZ', 'D:\Documents\Desktop')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', 'Favorites', 'REG_SZ', 'D:\Documents\Favorites')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', 'Personal', 'REG_SZ', 'D:\Documents')
                  RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', 'My Music', 'REG_SZ', 'D:\Documents\Music')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', 'My Pictures', 'REG_SZ', 'D:\Documents\Pictures')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', 'My Video', 'REG_SZ', 'D:\Documents\Videos')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', '{0DDD015D-B06C-45D5-8C4C-F59713854639}', 'REG_SZ', 'D:\Documents\Pictures')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', '{35286A68-3C57-41A1-BBB1-0EAE73D76C95}', 'REG_SZ', 'D:\Documents\Videos')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', '{374DE290-123F-4565-9164-39C4925E467B}', 'REG_SZ', 'D:\Downloads')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', '{754AC886-DF64-4CBA-86B5-F7FBF4FBCEF5}', 'REG_SZ', 'D:\Documents\Desktop')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', '{7D83EE9B-2244-4E70-B1F5-5393042AF1E4}', 'REG_SZ', 'D:\Downloads')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', '{A0C69A99-21C8-4671-8703-7934162FCF1D}', 'REG_SZ', 'D:\Documents\Music')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', '{F42EE2D3-909F-4907-8871-4C22FC0BF756}', 'REG_SZ', 'D:\Documents')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', 'Desktop', 'REG_SZ', 'D:\Documents\Desktop')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', 'Favorites', 'REG_SZ', 'D:\Documents\Favorites')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', 'Personal', 'REG_SZ', 'D:\Documents')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', 'My Music', 'REG_SZ', 'D:\Documents\Music')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', 'My Pictures', 'REG_SZ', 'D:\Documents\Pictures')
                        RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders', 'My Video', 'REG_SZ', 'D:\Documents\Videos')
                  Local $iPid = ProcessExists('explorer.exe');刷新资源管理器使注册表生效防止接下调用程序释放快捷方式到桌面出现找不到系统默认桌面-针对XP
                                    If $iPid Then ProcessClose($iPid)
                  If Not ProcessExists('explorer.exe') Then Run(@WindowsDir & '\explorer.exe')
                        ;移动文件夹到D盘(由于和复制进度条冲突,首次安装系统进入桌面就用最简化)
                        DirMove(@UserProfileDir & '\Downloads','D:\',1)
                        DirMove(@UserProfileDir & '\Documents','D:\',1)
                        ;DirMove(@UserProfileDir & '\Desktop','D:\Documents\',1)用两批处理代替防止出现此命令运行后导致快速访问里面桌面消失
                        RunWait(@ComSpec & ' /c ' & '@echo y|takeown /f "%USERPROFILE%\Desktop" /r>nul', '', @SW_HIDE)
            RunWait(@ComSpec & ' /c ' & '@echo y|icacls   "%USERPROFILE%\Desktop" /q /c /t /grant administrators:f>nul', '', @SW_HIDE)
            RunWait(@ComSpec & ' /c ' & 'xcopy /e/i/y "%USERPROFILE%\Desktop" "D:\Documents\Desktop" ', '', @SW_HIDE)
            RunWait(@ComSpec & ' /c ' & 'rd /q/s "%USERPROFILE%\Desktop"', '', @SW_HIDE)
                        DirMove(@UserProfileDir & '\Music','D:\Documents\',1)
                        DirMove(@UserProfileDir & '\Favorites','D:\Documents\',1)
                        DirMove(@UserProfileDir & '\Videos','D:\Documents\',1)
                        DirMove(@UserProfileDir & '\Pictures','D:\Documents\',1)
                        ;运行我的文档自解压包覆盖防止图标异常
                        FileInstall('相关调用\10Documents.exe',@TempDir&'\', 1)
                        Runwait(@TempDir&'\10Documents.exe','', @SW_HIDE)
                        FileDelete(@TempDir&'\10Documents.exe')
                        ;删除移动到D盘产生的收藏夹栏
                        DirRemove(@FavoritesDir & '\Links',1)
                        DirRemove(@UserProfileDir & '\3D Objects',1)
                        ProgressSet(100,'处理完毕')
                        ProgressOff();全体工作注销后生效
            EndIf
      EndIf
      ;--------------------------------------------------------------------------------------------------------------------
      ;安装装机软件
      If FileExists (@HomeDrive & '\SoftWareFiles') Then
                RunWait(@HomeDrive & '\SoftWareFiles\AutoInstall_x64.exe')
            RunWait(@ComSpec & ' /c ' & 'for /d %i in ("%HomeDrive%\SoftWareFiles") do rd /q/s %i>nul', '', @SW_HIDE)
      EndIf
      ;--------------------------------------------------------------------------------------------------------------------
      ;关闭输入指示解决Win10右下角图标乱动乱跳
      Local $ver = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion','ProductName')
      Switch $ver
                Case 'Windows 10 Enterprise 2016 LTSB'
                        ;Ltsb默认关闭
                Case Else
                        MSgbox(0,'关闭输入指示解决右下角图标乱动乱跳','点击任务栏设置 - 通知区域 - 打开或关闭系统图标 - 输入指示'&@CRLF&@CRLF&'按确定后关闭输入指示!');注销生效      (重启无效)
                        Run(@ComSpec & ' /c ' & 'control.exe /name Microsoft.TaskbarAndStartMenu', '', @SW_HIDE)
                        sleep(3000)
                        Dim $i
                        While 1
                              IfNot ProcessExists('SystemSettings.exe') Then ExitLoop
                              $i+=1
                              If $i > 120 Then ExitLoop
                              sleep(1000)
                        WEnd
      EndSwitch
      ;--------------------------------------------------------------------------------------------------------------------
      ;关闭防火墙但不关闭MpsSvc服务去掉Windows安全中心警告提示(防止首次部署系统优化后重启加载某些原因导致失效)
      RegWrite('HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SharedAccess\Parameters\FirewallPolicy\PublicProfile', 'EnableFirewall', 'REG_DWORD', '0x00000000')
    RegWrite('HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile', 'EnableFirewall', 'REG_DWORD', '0x00000000')
      ;--------------------------------------------------------------------------------------------------------------------
      ;解决21h2-22h2AeroTheme每次登录需要右键刷新一下桌面
      Local $ver = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion","CurrentBuild")
      Switch $ver
                Case '19044','19045'
                RegWrite('HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run', 'Start', 'REG_SZ', '' & @SystemDir & '\AutoRefresh.exe')
                        FileInstall('相关调用\AutoRefresh.exe',@SystemDir & '\', 1 )
                Case Else
                        MsgBox(0,'','当前系统版本非21h2或22h2',1)
      EndSwitch
      ;--------------------------------------------------------------------------------------------------------------------
      ProgressOn('提示:即将注销计算机以使设置生效!','')
                ProgressSet(50,'','')
                RunWait('cmd.exe /c rd /q/s %Temp%&md %Temp%','',@SW_HIDE) ;清空临时文件夹
                ProgressSet(100,'正在注销!')
                Sleep(500)
      ProgressOff()
      Run(@ComSpec&' /c ping 127.0.0.1 -n 5&del /q "'&@AutoItExe&'"&shutdown -f -l',@ScriptDir,@SW_HIDE);==>注销并自删除防止我的文档转移后注册表异常
      ;--------------------------------------------------------------------------------------------------------------------
Else
      MsgBox('','注意:','请在Windows 10 x64下运行')
EndIf代码是部署系统首次进入桌面调用、一下单独Run(@ComSpec&' /c ping 127.0.0.1 -n 5&del /q "'&@AutoItExe&'"&shutdown -f -l',@ScriptDir,@SW_HIDE)编译运行是正常的。总感觉莫名其妙

smallan 发表于 2023-4-24 18:51:19

Run(@ComSpec &" /c " & "ping 127.0.0.1 -n 5&del /q " &@AutoItExe& "&shutdown -f -l","",@SW_HIDE)
试下这样可以不?
@AutoItExe本身就是获取了带完整路径的,就没必要后面@ScriptDir了

令狐大虾 发表于 2023-4-24 19:50:32

smallan 发表于 2023-4-24 18:51
Run(@ComSpec &" /c " & "ping 127.0.0.1 -n 5&del /q " &@AutoItExe& "&shutdown -f -l","",@SW_HIDE)
...

谢谢!成功了,我再测试一次看看

令狐大虾 发表于 2023-4-24 20:33:20

smallan 发表于 2023-4-24 18:51
Run(@ComSpec &" /c " & "ping 127.0.0.1 -n 5&del /q " &@AutoItExe& "&shutdown -f -l","",@SW_HIDE)
...

貌似随机成功,还是不行哦

gyp2000 发表于 2023-4-24 21:45:06

应该是批处理执行后执行失败 所以后续命令无法成功执行。 你可以执行多条cmd命令避免执行失败卡住

gyp2000 发表于 2023-4-24 21:48:39

本帖最后由 gyp2000 于 2023-4-24 21:51 编辑

令狐大虾 发表于 2023-4-24 20:33
貌似随机成功,还是不行哦
Run(@ComSpec &" /c " & "ping 127.0.0.1 -n 5&del /q " &@AutoItExe,"",@SW_HIDE)
Run(@ComSpec &" /c " & "ping 127.0.0.1 -n 10& "&shutdown -f -l","",@SW_HIDE)

令狐大虾 发表于 2023-4-24 22:27:22

谢谢楼上两位解答,用Run(@ComSpec &" /c " & "ping 127.0.0.1 -n 5&del /q " &@AutoItExe& "&shutdown -f -l","",@SW_HIDE)解决了,再次谢谢

zdphj 发表于 2023-4-25 10:25:18

留名,等需要的时候,来学习一下。
页: [1]
查看完整版本: [已解决] 新版AU3编译后代码中的注销后自删除命令执行后无法注销,烦请大伙帮忙看看