以前写的一个小工具现在无法运行
本帖最后由 smooth 于 2011-7-14 22:35 编辑我几个月前使用AUTOIT_3.3.6.1第一版,写了一个很小的工具,当时都能用的。我现在C盘装了Windows7,H盘装了XP,我在这2个系统之下,都无法再运行这个小工具了,脚本无法运行了,连原来已经编译好的也不能运行了,也是界面都出不来了,可是我发给别人,别人都能运行的。不知道怎么回事,请各位指点。
附件:
#NoTrayIcon
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_icon=include\系统清理工具.ico
#AutoIt3Wrapper_outfile=系统资料转移工具.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=程序制作:鼎盛中国
#AutoIt3Wrapper_Res_Description=系统资料转移工具
#AutoIt3Wrapper_Res_Fileversion=1.6.8.8
#AutoIt3Wrapper_Res_LegalCopyright=All CopyRights Reserve By Cnds
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#Region AutoIt3Wrapper 预编译参数(常用参数)
#EndRegion AutoIt3Wrapper 预编译参数设置完成
#include <GUIConstantsEx.au3>
#include <buttonconstants.au3>
#include <WindowsConstants.au3>
#Include <Constants.au3>
#include <File.au3>
#include <GuiListBox.au3>
#Include <WinAPIEx.au3>
#cs ____________________________________
Au3 版本:3.3.6.1
脚本作者: 鼎盛中国
Email: smooth188@163.com
QQ/TM: 93737785
脚本版本: 1.1.0.8
脚本功能: 清理系统垃圾文件
#ce _______________脚本开始_________________
;
;禁止程序在桌面路径运行
If @ScriptDir = @DesktopDir Or @ScriptDir = @DesktopCommonDir Then
MsgBox(0,"错误","请勿将程序放在桌面运行", 3)
Exit
EndIf
;
Global $Desktoppath = "D:\Backup\桌面"
Global $Favoritespath = "D:\Backup\收藏夹"
Global $Personalpath = "D:\Backup\我的文档"
;
Global $Title = "系统资料转移工具"
If WinExists($Title) Then Exit
AutoItWinSetTitle($Title)
Global $Form = GUICreate($Title, 430, 250, -1, -1)
;加载图片
Global $Image = @TempDir & '\Logo.jpg'
FileInstall('include\Logo.jpg', $Image, 1)
GUICtrlCreatePic($Image, 150, 10, 268, 52, 0)
FileDelete($Image)
;
$Group1 = GUICtrlCreateGroup("", 10, 2, 120, 52)
$Group2 = GUICtrlCreateGroup("", 148, 2, 272, 62)
Dim $Checkbox
Dim $Button
$Button = GUICtrlCreateButton("全部选择(&A)", 22, 16, 96, 30)
$Group3 = GUICtrlCreateGroup("C盘资料转移", 15, 75, 400, 120)
$Checkbox = GUICtrlCreateCheckbox("把“桌面”转移到“D:\Backup\桌面”", 24, 96, 218, 20, $BS_RIGHTBUTTON)
$Checkbox = GUICtrlCreateCheckbox("把“收藏夹”转移到“D:\Backup\收藏夹”", 24, 130, 242, 20, $BS_RIGHTBUTTON)
$Checkbox = GUICtrlCreateCheckbox("把“我的文档”转移到“D:\Backup\我的文档”", 24, 160, 266, 20, $BS_RIGHTBUTTON)
$Button= GUICtrlCreateButton("转移(&E)", 20, 210, 60, 25)
$Button= GUICtrlCreateButton("恢复(&R)", 120, 210, 60, 25)
GUICtrlCreateLabel("程序制作:鼎盛中国", 280, 210, 108, 20)
GUICtrlCreateLabel("Email:smooth188@163.com", 280, 230, 180, 20)
;
GUISetState(@SW_SHOW);建议所有控件都建立完再显示 避免窗口重绘
;
Opt("TrayMenuMode",1) ; 默认托盘菜单项目(脚本已暂停/退出脚本) (Script Paused/Exit) 将不显示.
$prefsitem= TrayCreateItem("参数")
TrayCreateItem("")
$aboutitem= TrayCreateItem("关于")
TrayCreateItem("")
$exititem = TrayCreateItem("退出")
TraySetState()
;
Local $bTf = True
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
If MsgBox(4, "温馨提示", "退出程序并访问鼎盛中国网站吗?", 0, $Form) = 7 Then
Exit
Else
shellexecute("Http://hi.baidu.com/cnace")
Exit
EndIf
Case $Button
If $bTf = True Then
GUICtrlSetData($Button, '全部取消(&C)')
For $i = 1 To 3
GUICtrlSetState($Checkbox[$i],$GUI_CHECKED)
Next
$bTf = False
Else
GUICtrlSetData($Button, '全部选择(&A)')
For $i = 1 To 3
GUICtrlSetState($Checkbox[$i],$GUI_UNCHECKED)
Next
$bTf = True
EndIf
Case $Button
Dim $s = 0
For $c = 1 To 3
If GUICtrlRead($Checkbox[$c]) = $GUI_CHECKED Then
$s = 1
ExitLoop
EndIf
Next
If $s = 0 Then
$Msg = MsgBox(0, "温馨提示", "您未选择任何项目,请选择要执行的项目后再操作!", 0, $Form)
Else
;计算转移前C盘的可用空间
If NOT @error Then
$total = DriveSpaceFree("C:\")
EndIf
For $m = 1 To 2
GUICtrlSetState($Button[$m],$GUI_DISABLE)
Next
For $i=1 To 3
GUICtrlSetState($Checkbox[$i],$GUI_DISABLE)
Next
_MainProgram();执行转移主程序
;计算转移后C盘的可用空间
Dim $result
If NOT @error Then
$totalsize = DriveSpaceFree("C:\")
EndIf
$result = Abs(Round(($totalsize - $total), 2))
If MsgBox(4,"温馨提示", "资料转移完成,共为您释放了 " & $result & " MB的C盘空间^_^,是否退出程序?", 0, $Form) = 6 Then
shellexecute("Http://hi.baidu.com/cnace")
EXIT
Else
For $n = 1 To 3
GUICtrlSetState($Button[$n],$gui_enable)
Next
For $i=1 To 3
GUICtrlSetState($Checkbox[$i],$GUI_ENABLE)
GUICtrlSetState($Checkbox[$i],$GUI_UNCHECKED)
Next
Sleep(100)
GUICtrlSetData($Button, '全部选择(&A)')
EndIf
EndIf
Case $Button
Dim $s = 0
For $c = 1 To 3
If GUICtrlRead($Checkbox[$c]) = $GUI_CHECKED Then
$s = 1
ExitLoop
EndIf
Next
If $s = 0 Then
$Msg = MsgBox(0, "温馨提示", "您未选择任何项目,请选择要执行的项目后再操作!", 0, $Form)
Else
;计算转移前C盘的可用空间
If NOT @error Then
$total = DriveSpaceFree("C:\")
EndIf
For $m = 1 To 2
GUICtrlSetState($Button[$m],$GUI_DISABLE)
Next
For $i=1 To 3
GUICtrlSetState($Checkbox[$i],$GUI_DISABLE)
Next
_Recovery();执行恢复主程序
;计算转移后C盘的可用空间
Dim $result
If NOT @error Then
$totalsize = DriveSpaceFree("C:\")
EndIf
$result = Abs(Round(($totalsize - $total), 2))
If MsgBox(4,"温馨提示", "恢复完成,共占用了 " & $result & " MB的C盘空间^_^,是否退出程序?", 0, $Form) = 6 Then
shellexecute("Http://hi.baidu.com/cnace")
EXIT
Else
For $n = 1 To 3
GUICtrlSetState($Button[$n],$gui_enable)
Next
For $i=1 To 3
GUICtrlSetState($Checkbox[$i],$GUI_ENABLE)
GUICtrlSetState($Checkbox[$i],$GUI_UNCHECKED)
Next
Sleep(100)
GUICtrlSetData($Button, '全部选择(&A)')
EndIf
EndIf
EndSwitch
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $prefsitem
Msgbox(64, "参数:", "系统版本:" & @OSVersion)
Case $msg = $aboutitem
Msgbox(64, "关于:系统清理工具", "程序制作:鼎盛中国,2011年4月28日于上海")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
;
;
Func _MainProgram()
Dim $Checkboxcount
$i = 1
For $j = 1 To 3 ;已知 有3个checkbox
If GUICtrlRead($Checkbox[$j]) = $GUI_Checked Then
ReDim $Checkboxcount[$i+1];修改新数组长度
$Checkboxcount[$i] = $j;在新数组中记录下需要执行的行
$i = $i + 1 ;计数
EndIf
Next
$i=$i-1
For $k = 1 To $i
_Work($Checkboxcount[$k]);执行这一条
Next
EndFunc
Func _Work($worknum)
Switch $worknum
Case 1
If @DesktopDir <> $Desktoppath Then
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", "Desktop", "REG_EXPAND_SZ", $Desktoppath)
RunWait(@ComSpec & " /c taskkill /f /im explorer.exe", "", @SW_HIDE)
Run(@WindowsDir & "\explorer.exe", "", "")
Dirmove(@UserProfileDir & "\桌面", @UserProfileDir & "\桌面_rename")
Dirmove(@UserProfileDir & "\桌面_rename", $Desktoppath, 1)
EndIf
Case 2
If @FavoritesDir <> $Favoritespath Then
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", "Favorites", "REG_EXPAND_SZ", $Favoritespath)
RunWait(@ComSpec & " /c taskkill /f /im explorer.exe", "", @SW_HIDE)
Run(@WindowsDir & "\explorer.exe", "", "")
Dirmove(@UserProfileDir & "\收藏夹", @UserProfileDir &"\收藏夹_rename")
Dirmove(@UserProfileDir & "\收藏夹_rename", $Favoritespath, 1)
EndIf
Case 3
If @MyDocumentsDir <> $Personalpath Then
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", "Personal", "REG_EXPAND_SZ", $Personalpath)
RunWait(@ComSpec & " /c taskkill /f /im explorer.exe", "", @SW_HIDE)
Run(@WindowsDir & "\explorer.exe", "", "")
Dirmove(@UserProfileDir & "\My Documents", @UserProfileDir & "\My Documents_rename")
Dirmove(@UserProfileDir & "\My Documents_rename", $Personalpath, 1)
EndIf
EndSwitch
EndFunc
;
;恢复系统默认的路径
Func _Recovery()
Dim $Checkboxcount
$i = 1
For $j = 1 To 3 ;已知 有3个checkbox
If GUICtrlRead($Checkbox[$j]) = $GUI_Checked Then
ReDim $Checkboxcount[$i+1];修改新数组长度
$Checkboxcount[$i] = $j;在新数组中记录下需要执行的行
$i = $i + 1 ;计数
EndIf
Next
$i=$i-1
For $k = 1 To $i
_Workcode($Checkboxcount[$k]);执行这一条
Next
EndFunc
Func _Workcode($worknum)
Switch $worknum
Case 1
If @DesktopDir = $Desktoppath Then
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", "Desktop", "REG_EXPAND_SZ", "%USERPROFILE%\桌面")
RunWait(@ComSpec & " /c taskkill /f /im explorer.exe", "", @SW_HIDE)
Run(@WindowsDir & "\explorer.exe", "", "")
Dirmove($Desktoppath, $Desktoppath & "_rename")
Dirmove($Desktoppath & "_rename", @UserProfileDir & "\桌面", 1)
EndIf
Case 2
If @FavoritesDir = $Favoritespath Then
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", "Favorites", "REG_EXPAND_SZ", "%USERPROFILE%\收藏夹")
RunWait(@ComSpec & " /c taskkill /f /im explorer.exe", "", @SW_HIDE)
Run(@WindowsDir & "\explorer.exe", "", "")
Dirmove($Favoritespath, $Favoritespath & "_rename")
Dirmove($Favoritespath & "_rename", @UserProfileDir & "\收藏夹", 1)
EndIf
Case 3
If @MyDocumentsDir = $Personalpath Then
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", "Personal", "REG_EXPAND_SZ", "%USERPROFILE%\My Documents")
RunWait(@ComSpec & " /c taskkill /f /im explorer.exe", "", @SW_HIDE)
Run(@WindowsDir & "\explorer.exe", "", "")
Dirmove($Personalpath, $Personalpath & "_rename")
Dirmove($Personalpath & "_rename", @UserProfileDir & "\My Documents", 1)
EndIf
EndSwitch
EndFunc
建议直接贴出代码即可。。。大家可以直接看看问题出在哪里。。下载好像要币吧? 是无法显示gui界面还是无法使用里面的功能?
我这Win7可以打开界面
看看是怎么回事 不错的软件,源码学习了,谢谢! 自己写的无法运行解决不了?
发错误信息上来让大伙帮你看看! 我这里能运行啊..... 是你自己的电脑存在病毒,检查一下,你的软件目录下是否有个LPK.DLL 病毒文件。 或者有一个叫UPS10.DLL 病毒文件。 文件隐藏起来了,要显示系统文件才会显示出来。 會不會是要用以系統管理員身分執行
WIN7大部分程式無法執行都是這樣 本帖最后由 smooth 于 2011-7-16 17:06 编辑
自己写的无法运行解决不了?
发错误信息上来让大伙帮你看看!
hzxymkb 发表于 2011-7-15 23:58 http://www.autoitx.com/images/common/back.gif
没有错误信息,就是双击了毫无反应。
在其他很多电脑上都能正确运行,就是我这个笔记本上无法运行,我写这个工具的时候也是用这个笔记本,那时候是XP系统。现在是装了Windows7和XP双系统。 这就奇怪了。 回复 11# smooth
换个系统看看! 难道是双系统出错了?应该不会。。。。你现在那xp是之前的xp不?连之前编译过的都无法运行就不是au3的问题了,如果不是在两系统中都装了某种会导致au3无法运行的软件(如360)的话,那么就是你装的系统有问题,有可能是阉割版吧? 在我笔记本上的Windows7和XP系统都运行不了,郁闷。
页:
[1]
2