ipmitool 发表于 2016-11-30 11:59:56

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

本帖最后由 ipmitool 于 2016-11-30 15:37 编辑


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

heroxianf 发表于 2016-11-30 12:02:16

你肯定是对这个文件进行操作,你就先检查这个EXE在不在在就执行,不在就提示你自定义的msgbox

kk_lee69 发表于 2016-11-30 15:18:56

回复 1# ipmitool

辦不到

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
   

afan 发表于 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

kk_lee69 发表于 2016-11-30 17:01:10

回复 5# afan

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

譬如數組的 數量錯誤?? 本來應該存在的檔案不在了??

afan 发表于 2016-11-30 17:16:03

回复afan

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

譬如數組的 數量錯誤?? 本來應該存在的檔案不在 ...
kk_lee69 发表于 2016-11-30 17:01 http://www.autoitx.com/images/common/back.gif


    可应对所有AutoIt意外错误

heroxianf 发表于 2016-11-30 17:24:50

回复 5# afan

可以可以加到创建WINHTTP对象错误里呢?   就是GET一个网址,那个网址是无效的链接。

afan 发表于 2016-11-30 17:42:36

回复 8# heroxianf


    可以

kk_lee69 发表于 2016-11-30 17:44:54

回复 7# afan

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

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

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

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

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

DIM $A

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

afan 发表于 2016-11-30 18:18:11

回复 10# kk_lee69


    这是直接错误,直接改就行了,拦截没有任何意义。无法预期的错误,如8#提到的那才有拦截处理的意义。自己研究吧。

f-r-2006 发表于 2016-12-1 20:50:50

哇哦,又学了一招

jingzhinvr 发表于 2016-12-2 09:37:44

代码写错了吧
页: [1]
查看完整版本: [已解决]如何指定某一個error顯示自定義msgbox