找回密码
 加入
搜索
查看: 2375|回复: 12

[AU3基础] [已解决]如何指定某一個error顯示自定義msgbox

 火.. [复制链接]
发表于 2016-11-30 11:59:56 | 显示全部楼层 |阅读模式
本帖最后由 ipmitool 于 2016-11-30 15:37 编辑


想要發生這個error時, 就顯示msgbox(0,"123","123")
可以辦到嗎? 謝謝

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2016-11-30 12:02:16 | 显示全部楼层
你肯定是对这个文件进行操作,你就先检查这个EXE在不在  在就执行,不在就提示你自定义的msgbox
发表于 2016-11-30 15:18:56 | 显示全部楼层
回复 1# ipmitool

辦不到
 楼主| 发表于 2016-11-30 15:36:31 | 显示全部楼层
回复 2# heroxianf

感謝嘍~
If StringInStr(FileGetAttrib($path), "D") = 0 Then
        FileCopy($path, "\\10.32.15.183\upload$\tmp\sit1temp",$FC_OVERWRITE)

        Else
        ProgressCopy($path, "\\10.32.15.183\upload$\tmp\sit1temp",0.5)
        EndIf
    
发表于 2016-11-30 15:38:54 | 显示全部楼层
很简单的东西  都不看帮助? obj/com 参考
Global $iEventError = 0 ; 如果检查 COM 错误发生. 检查处理后必须复位.

Local $oMyError = ObjEvent("AutoIt.Error", "ErrFunc") ; 建立客户错误处理程序

; 这里执行一个预设故障(对象不存在)
Local $oIE = ObjCreate("InternetExplorer.Application")
$oIE.visible = 1
$oIE.bogus
If $iEventError Then
    MsgBox(48, "", "上一行中有一个错误")
    $iEventError = 0 ; 显示发生的 COM 错误后复位
EndIf
Exit

; 这是一个自定义的错误处理程序
Func ErrFunc()
    $sHexNumber = Hex($oMyError.number, 8)
    MsgBox(48, "", "截获一个 COM 错误 !" & @CRLF & _
            "错误代码: " & $sHexNumber & @CRLF & _
            "错误描述: " & $oMyError.windescription)
    $iEventError = 1 ; 用于 COM 错误发生时的检查
EndFunc   ;==>ErrFunc
发表于 2016-11-30 17:01:10 | 显示全部楼层
回复 5# afan

如果不是 COM 的錯誤 應該就沒辦法吧

譬如  數組的 數量錯誤?? 本來應該存在的檔案不在了??
发表于 2016-11-30 17:16:03 | 显示全部楼层
回复  afan

如果不是 COM 的錯誤 應該就沒辦法吧

譬如  數組的 數量錯誤?? 本來應該存在的檔案不在 ...
kk_lee69 发表于 2016-11-30 17:01



    可应对所有AutoIt意外错误
发表于 2016-11-30 17:24:50 | 显示全部楼层
回复 5# afan

可以可以加到创建WINHTTP对象错误里呢?   就是GET一个网址,那个网址是无效的链接。
发表于 2016-11-30 17:42:36 | 显示全部楼层
回复 8# heroxianf


    可以
发表于 2016-11-30 17:44:54 | 显示全部楼层
回复 7# afan

老實說  我的能力有限  實在 不能理解  何謂 所有的 AUTOIT  錯誤 都可以攔截

舉個 簡單點的例子 來說.......

數組 很常用  可是 有時候 因為資料載入的時候 經常 會發生 一種情況
就是 數組的組數 出問題   

譬如 下面的例子   AU3 就會直接出錯   無法攔截 不是??
Global $iEventError = 0 ; 如果檢查 COM 錯誤發生. 檢查處理後必須復位.

Local $oMyError = ObjEvent("AutoIt.Error", "ErrFunc") ; 建立客戶錯誤處理常式

DIM $A[3]

FOR $i=0 TO 3 Step 1
$A[$i]=0
Next

; 這裡執行一個預設故障(物件不存在)
Local $oIE = ObjCreate("InternetExplorer.Application")
$oIE.visible = 1
$oIE.bogus
If $iEventError Then
    MsgBox(48, "", "上一行中有一個錯誤")
    $iEventError = 0 ; 顯示發生的 COM 錯誤後重定
EndIf

Exit

; 這是一個自訂的錯誤處理常式
Func ErrFunc()
    $sHexNumber = Hex($oMyError.number, 8)
    MsgBox(48, "", "截獲一個 COM 錯誤 !" & @CRLF & _
            "錯誤代碼: " & $sHexNumber & @CRLF & _
            "錯誤描述: " & $oMyError.windescription)
    $iEventError = 1 ; 用於 COM 錯誤發生時的檢查
EndFunc   ;==>ErrFunc
发表于 2016-11-30 18:18:11 | 显示全部楼层
回复 10# kk_lee69


    这是直接错误,直接改就行了,拦截没有任何意义。无法预期的错误,如8#提到的那才有拦截处理的意义。自己研究吧。
发表于 2016-12-1 20:50:50 | 显示全部楼层
哇哦,又学了一招
发表于 2016-12-2 09:37:44 | 显示全部楼层
代码写错了吧
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-20 08:12 , Processed in 0.080858 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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