找回密码
 加入
搜索
查看: 2909|回复: 3

[AU3基础] 关于AU3程序在win pe下运行的问题?

[复制链接]
发表于 2011-2-25 16:30:57 | 显示全部楼层 |阅读模式
以下是源代码:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
FileInstall("7za.exe", @TempDir & "7za.exe", 1)
Global $time = 20
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("系统安装", 350, 142, 193, 125)
$pic=GUICtrlCreatePic(@ScriptDir&"\onekey.bmp",0,0,350,60)
GUICtrlSetFont(-1, 12, 400, 0, "楷体_GB2312")
$label2=GUICtrlCreateLabel("本操作将删除C盘数据,请确认硬盘已分区,并备份好了C盘数据!",3,65)
GUICtrlSetFont(-1, 9, 400, 0, "宋体")
$Progress1 = GUICtrlCreateProgress(8, 88, 333, 10)
$Button1 = GUICtrlCreateButton("确定(&Y)", 53, 110, 83, 25, 0)
$Button2 = GUICtrlCreateButton("退出(&X)", 210, 110, 73, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GUICtrlCreateGroup('',0,54.5,356,10,$ss_etchedhorz)
AdlibRegister("_timer", 1000)
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE, $Button2
                        Exit
                Case $Button1
                        ExitLoop
        EndSwitch
        If $time <= 0 Then ExitLoop
WEnd
main()
Exit
Func _timer()
        $time -= 1
        GUICtrlSetData($Button1, "确定"&$time&"(&Y)");"秒后将恢复系统到C盘!"
        GUICtrlSetData($Progress1, (20 - $time) / 0.2)
        If $time <= 0 Then AdlibUnRegister()
EndFunc   ;==>_timer

Func main()
Dim $CDRom, $i, $Target, $Drive, $Flag, $Flagr, $boot, $sysc
GUISetState(@SW_HIDE,$Form1)
$Target = "WINXPSP3.GHO"
$boot = "boot.ini"
For $i = 90 To 67 Step -1
        $Drive = Chr($i)
        If FileExists($Drive & ":\system\" & $Target) Then
                $CDRom = $Drive & ":"
                ExitLoop
        EndIf
Next
If FileExists($CDRom) Then
        If FileExists($CDRom & "\PESOFT\GHOST\Ghost32.exe") And FileExists($CDRom & "\system\WINXPSP3.GHO") Then
                ToolTip(@CR & " 正在执行恢复XP到C盘,请稍候... " & @CR, @DesktopWidth - 260, @DesktopHeight - 120)
                RunWait($CDRom & "\PESOFT\GHOST\Ghost32.exe -nousb -clone,mode=pload,src=" & $CDRom & "\system\WINXPSP3.GHO:1,dst=1:1 -crcignore -sure",$CDRom&"\")
                ProcessWaitClose("Ghost32.exe")
                ;ToolTip("")
            For $i = 90 To 67 Step -1
                  $drvc = Chr($i)
                 If FileExists($drvc & ":\" & $boot) Then
                   $sysc = $drvc & ":"
                    ExitLoop
                     EndIf
                         Next                         
                ToolTip(@CR & " 正在复制驱动,请稍候... " & @CR, @DesktopWidth - 260, @DesktopHeight - 120)
                Sleep(100)
                ;定义复制段
                FileCopy($CDRom & "\dv.exe", $sysc & "\windows\dv\", 1)
                FileCopy($CDRom & "\dvs.exe", $sysc & "\", 1)
                $Flagr = MsgBox(1, "温馨提示:", "驱动复制完成,请重启电脑完成安装", 5)
                If $Flagr = 2 Then
                        Exit
                EndIf
                Run(@ComSpec & " /c " & 'pecmd shut r', "", @SW_HIDE)
        ElseIf Not FileExists($CDRom & "\PESOFT\GHOST\Ghost32.exe") Then
                MsgBox(0, "Error", "未发现Ghost32.exe程序!")
                Exit
        ElseIf Not FileExists($CDRom & "\system\WINXPSP3.GHO") Then
                MsgBox(0, "Error", "未发现gho系统镜像文件!")
                Exit
        EndIf
Else
        MsgBox(0, "Error", "未发现gho系统镜像文件!")
        Exit
EndIf
EndFunc   ;==>main
我把代码编译成au3程序,在pe下点击运行,进入后点AU3程序执行任务可以把驱动复制到C盘任务全部完成,但是让AU3程序进入PE桌面后自动运行,au3只执行ghost任务,驱动就复制不了??这是怎么回事,请教一下大侠们,谢谢!
发表于 2011-2-25 20:42:50 | 显示全部楼层
现在的PE的分区貌似都不是C盘吧??  你可以直接执行拷贝文件到C盘的命令 不用先判断哪个分区时C盘...

估计就是你那判断哪个是C盘那  判断出错了 ....
 楼主| 发表于 2011-2-26 09:49:07 | 显示全部楼层
回复 2# guland

谢谢老大!问题解决了。
问题所在:
    在PE下进入桌面自动运行放置的地方不对!还有就是不能用AU3调用AU3程序运行,不然就出错!不知道是怎么回事?
发表于 2011-2-27 21:01:49 | 显示全部楼层
回复 3# lhylm


    PE下我没试过,  我的系统是WIN7  我写了很多程序都是AU3调用AU3,没发现怎么问题啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 13:43 , Processed in 0.073768 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表