找回密码
 加入
搜索
楼主: ipmitool

[AU3基础] [已解決]如何讓每一欄的第5格, 每10分鐘檢查一次值, 沒有更新成不一樣的值就回報錯誤?

 火.. [复制链接]
发表于 2016-6-13 14:42:09 | 显示全部楼层
回复 15# kk_lee69

你说得对,LZ应该在调试时就会发现。
发表于 2016-6-13 14:43:44 | 显示全部楼层
回复 14# ipmitool

不懂 可以說清楚點嗎  ??

8點10 秒 要檢查甚麼 是 8點10分吧  8點10分檢查 的時候 跟  LISTVIEW第二次 做比較 是指甚麼??
发表于 2016-6-13 14:46:51 | 显示全部楼层
回复 16# chzj589

而且中間還有個問題

第一次 值 是 A
10分鐘內 改成 B
10分鐘快到了 又改回 A

然後一比對的結束是  沒有變化~~~
发表于 2016-6-13 14:49:20 | 显示全部楼层
回复 14# ipmitool


   或者 你應該直接說清楚 你真正的目的是為了做甚麼.....說實際的應用在哪邊
也許有其他的思考方式
 楼主| 发表于 2016-6-13 15:09:08 | 显示全部楼层
呵呵, 沒錯, 是分開的, 大師們有甚麼辦法可以幫幫忙...
发表于 2016-6-13 15:10:42 | 显示全部楼层
回复  chzj589

而且中間還有個問題

第一次 值 是 A
10分鐘內 改成 B
10分鐘快到了 又改回 A

然 ...
kk_lee69 发表于 2016-6-13 14:46

第一次 值 是 A,写入X.ini
10分钟后读取$idListview第五栏的值,
然后是X.ini的值与10分钟后读取$idListview第五栏的值比对,
有不同值就写入X.ini。
等于每10分钟就循环一次。
发表于 2016-6-13 15:47:46 | 显示全部楼层
本帖最后由 kk_lee69 于 2016-6-13 15:56 编辑

回复 20# ipmitool


    好啦  幫妳寫好了  照你說的是分開的


#include <Array.au3>
#include <File.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
;#include <MsgBoxConstants.au3>

DIM $OldList="" , $NEWList=""

GUICreate("ListView Add Array", 800, 300)
$idListview = GUICtrlCreateListView("", 2, 2, 394, 268)
GUISetState(@SW_SHOW)
_GUICtrlListView_AddColumn($idListview, "Tester", 100)
_GUICtrlListView_AddColumn($idListview, "Test Item", 100)
_GUICtrlListView_AddColumn($idListview, "BMC IP", 100)
_GUICtrlListView_AddColumn($idListview, "Count", 100)
_GUICtrlListView_AddColumn($idListview, "Last Record Time", 100)
_GUICtrlListView_SetItemCount($idListview, 5000)
_add_lv_items()
AdlibRegister('_add_lv_items', 5000); 5秒刷新?据
;AdlibRegister('_Checkitems', 600000); 10 分 檢查
AdlibRegister('_Checkitems', 10000); 10秒 檢查
_Checkitems()

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()


Func _add_lv_items()

        Local $path, $aFileList, $aNewList[1][2]
        $path = @ScriptDir
        $aFileList = _FileListToArray($path, "*.txt")
                _ArrayDelete($aFileList,0)
        If IsArray($aFileList) Then

                ReDim $aNewList[UBound($aFileList)][5] ;;;[Col count]
                For $i = 0 To UBound($aFileList) - 1 Step 1

                        $aNewList[$i][0] = $aFileList[$i]
                        $aNewList[$i][1] = FileReadLine($aFileList[$i], 1)
                        $aNewList[$i][2] = FileReadLine($aFileList[$i], 2)
                        $aNewList[$i][3] = FileReadLine($aFileList[$i], 3)
                        $aNewList[$i][4] = FileReadLine($aFileList[$i], 4)

                Next

                _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($idListview))
                _GUICtrlListView_AddArray($idListview, $aNewList)

        EndIf

EndFunc 


Func _Checkitems()

        Local $path, $aFileList, $aNewList2[1][2]
        $path = @ScriptDir
        $aFileList = _FileListToArray($path, "*.txt")
                _ArrayDelete($aFileList,0)
        If IsArray($aFileList) Then

                ReDim $aNewList2[UBound($aFileList)][5] ;;;[Col count]
                For $i = 0 To UBound($aFileList) - 1 Step 1

                        $aNewList2[$i][0] = $aFileList[$i]
                        $aNewList2[$i][1] = FileReadLine($aFileList[$i], 1)
                        $aNewList2[$i][2] = FileReadLine($aFileList[$i], 2)
                        $aNewList2[$i][3] = FileReadLine($aFileList[$i], 3)
                        $aNewList2[$i][4] = FileReadLine($aFileList[$i], 4)

                Next
              ; _ArrayDisplay($aNewList2)
        EndIf
                
                If IsArray($OldList) Then
                        For $j=0 TO UBound($OldList)-1 STEP 1
                                IF $OldList[$j][4]=$aNewList2[$j][4] THEN MsgBox (0,"10分鐘檢查","10 分鐘到了 第"&($j+1)&"筆 資料沒有更新")
                                
                
                        Next
                        $OldList=$aNewList2
                Else
                        $OldList=$aNewList2
                EndIf
EndFunc 
 楼主| 发表于 2016-6-13 16:14:05 | 显示全部楼层
回复 19# kk_lee69


    喔喔, 拍謝, 把你搞糊塗了, 我的目的是每10分鐘確認 listview 上面的東西有沒有變化,
有變化的話, 代表txt的檔案有在做更新(我有另一支程式在其他測試機台會一直丟檔案更新資料), 這時候寫一個 on-going 的字串到listview上面(且是針對那一筆 txt 的那一欄在 listview 寫下 on-going),
如果沒有再更新 txt 的話, 就代表在丟檔案的測試機台遇到問題, 所以我才想要10分鐘抓一次 txt 檔案有沒有更新,
另外每5秒更新是要給manager去看現在跑的狀態而已...因為同時有很多機器在做各個機台的txt更新.
发表于 2016-6-13 16:18:52 | 显示全部楼层
回复 23# ipmitool


    你自己看看你自己的東西 明明 LISTVIEW 的東西就是 來自於 TXT 檔案  現在又說

有變化才更新 TXT 檔案    請寫好範例人家才有辦法幫你,不然就只好請您自己多嘗試 看看嚕
发表于 2016-6-13 16:34:31 | 显示全部楼层
回复 23# ipmitool
是这样子吗?

本帖子中包含更多资源

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

×
 楼主| 发表于 2016-6-13 17:08:36 | 显示全部楼层
回复 22# kk_lee69


    大哥, 別生氣, 快搞定了, 你剛剛給我的code是我想要的, 只是被我改一改, 第268行有error, 可以幫我看一下嗎, 謝謝妳拉~~
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>


;Local $GUI, $hImage, $iITEM_COUNT = 10000
GUICreate("Test Management v1.0", 1060, 410)
$hListView = GUICtrlCreateListView("", 5, 5, 1050, 345, $LVS_SHOWSELALWAYS, $LVS_EX_GRIDLINES + $LVS_EX_FULLROWSELECT + $LVS_EX_DOUBLEBUFFER)

;===================================================================
$Button1 = GUICtrlCreateButton("ReportData", 200, 362, 73, 33)
$Button2 = GUICtrlCreateButton("Complete", 300, 362, 73, 33)
$Button3 = GUICtrlCreateButton("Clear", 800, 362, 73, 33)
$PowerReset = GUICtrlCreateButton("Power Reset", 500, 362, 73, 33)
$SerialOverLan = GUICtrlCreateButton("SOL", 600, 362, 73, 33)
;$stopreportflash = GUICtrlCreateButton("Stopreportflash", 200, 392, 73, 33)
;$stopcompleteflash = GUICtrlCreateButton("Stopcompleteflash", 300, 392, 73, 33)
;===================================================================

GUISetState()

                                                ;GUISetState(@SW_SHOW)
                                                _GUICtrlListView_AddColumn($hListView, "File Name", 0) ;disappear file name
                                                _GUICtrlListView_AddColumn($hListView, "Test Case", 70)
                                                _GUICtrlListView_AddColumn($hListView, "Product", 80)
                                                _GUICtrlListView_AddColumn($hListView, "Serial", 90)
                                                _GUICtrlListView_AddColumn($hListView, "BIOS", 40)
                                                _GUICtrlListView_AddColumn($hListView, "BMC", 40)
                                                _GUICtrlListView_AddColumn($hListView, "Count", 60)
                                                _GUICtrlListView_AddColumn($hListView, "Status", 60)
                                                _GUICtrlListView_AddColumn($hListView, "LOG err", 50)
                                                _GUICtrlListView_AddColumn($hListView, "BMC err", 50)
                                                _GUICtrlListView_AddColumn($hListView, "SDR err", 50)
                                                _GUICtrlListView_AddColumn($hListView, "Sensor err", 65)
                                                _GUICtrlListView_AddColumn($hListView, "BMC IP", 90)
                                                _GUICtrlListView_AddColumn($hListView, "Tester", 50)
                                                _GUICtrlListView_AddColumn($hListView, "Remind Time", 80)
                                                _GUICtrlListView_AddColumn($hListView, "Upload Time", 120)
                                                _GUICtrlListView_SetItemCount($hListView, 5000)


DIM $OldList="" , $NEWList=""

While 1
        GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;Double click value get

        Switch GUIGetMsg()
                        Case $GUI_EVENT_CLOSE
                        ExitLoop
                        Case $Button1
                                AdlibUnRegister('_add_complete_items')
                                                _add_report_items()
                                                AdlibRegister('_add_report_items', 5000);reflash every 10sec


AdlibRegister('_Checkitems', 10000); 10秒 檢查
_Checkitems()


                        Case $Button2
                                AdlibUnRegister('_add_report_items')
                                                _add_complete_items()
                                                AdlibRegister('_add_complete_items', 5000);reflash every 10sec

;                        Case $stopreportflash
;                                                AdlibUnRegister('_add_report_items')

;                        Case $stopcompleteflash
;                                                AdlibUnRegister('_add_complete_items')

                        Case $Button3
                                MsgBox(0,"123","456",0)

                        Case $PowerReset
                                Run("PowerReset.exe")

                        Case $SerialOverLan
                                Run("SOL.exe")

        EndSwitch

WEnd




Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
Exit



Func _add_report_items()
        ;_GUICtrlListView_SetHoverTime($hListView,6000)
        ;MsgBox($MB_SYSTEMMODAL, "Information", "Hover Time (milliseconds): " & _GUICtrlListView_GetHoverTime($hListView))


FileChangeDir("\\192.8.1.1\fs1\1")

                Local $path, $aFileList, $aNewList[1][2]
                $path = "\\192.8.1.1\fs1\1"

        $aFileList = _FileListToArray($path, "*.txt")

        If IsArray($aFileList) Then
                ReDim $aNewList[UBound($aFileList)][16] ;;;[Col count]
                For $i = 0 To UBound($aFileList) - 1 Step 1
                                            $aNewList[0][1] = $i
                        ;$aNewList[$i][0] = $aFileList[$i]
                        $aNewList[$i][1] = FileReadLine($aFileList[$i], 1)
                        $aNewList[$i][2] = FileReadLine($aFileList[$i], 2)
                        $aNewList[$i][3] = FileReadLine($aFileList[$i], 3)
                        $aNewList[$i][4] = FileReadLine($aFileList[$i], 4)
                                                $aNewList[$i][5] = FileReadLine($aFileList[$i], 5)
                                                $aNewList[$i][6] = FileReadLine($aFileList[$i], 6)
                                                $aNewList[$i][7] = FileReadLine($aFileList[$i], 7)
                                                $aNewList[$i][8] = FileReadLine($aFileList[$i], 8)
                                                $aNewList[$i][9] = FileReadLine($aFileList[$i], 9)
                                                $aNewList[$i][10] = FileReadLine($aFileList[$i], 10)
                                                $aNewList[$i][11] = FileReadLine($aFileList[$i], 11)
                                                $aNewList[$i][12] = FileReadLine($aFileList[$i], 12)
                                                $aNewList[$i][13] = FileReadLine($aFileList[$i], 13)
                                                $aNewList[$i][14] = FileReadLine($aFileList[$i], 14)
                                                $aNewList[$i][15] = FileReadLine($aFileList[$i], 15)
;$change1=FileReadLine($aFileList[$i], 1)
                                Next


                _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($hListView))
                _GUICtrlListView_AddArray($hListView, $aNewList)


        EndIf
        EndFunc


Func _add_complete_items()

FileChangeDir("\\192.8.1.1\fs1\2")

                Local $path, $aFileList, $aNewList[1][2]
                $path = "\\192.8.1.1\fs1\2"

        $aFileList = _FileListToArray($path, "*.txt")

        If IsArray($aFileList) Then
                ReDim $aNewList[UBound($aFileList)][16] ;;;[Col count]
                For $i = 0 To UBound($aFileList) - 1 Step 1
                                            $aNewList[0][1] = $i
                        ;$aNewList[$i][0] = $aFileList[$i]
                        $aNewList[$i][1] = FileReadLine($aFileList[$i], 1)
                        $aNewList[$i][2] = FileReadLine($aFileList[$i], 2)
                        $aNewList[$i][3] = FileReadLine($aFileList[$i], 3)
                        $aNewList[$i][4] = FileReadLine($aFileList[$i], 4)
                                                $aNewList[$i][5] = FileReadLine($aFileList[$i], 5)
                                                $aNewList[$i][6] = FileReadLine($aFileList[$i], 6)
                                                $aNewList[$i][7] = FileReadLine($aFileList[$i], 7)
                                                $aNewList[$i][8] = FileReadLine($aFileList[$i], 8)
                                                $aNewList[$i][9] = FileReadLine($aFileList[$i], 9)
                                                $aNewList[$i][10] = FileReadLine($aFileList[$i], 10)
                                                $aNewList[$i][11] = FileReadLine($aFileList[$i], 11)
                                                $aNewList[$i][12] = FileReadLine($aFileList[$i], 12)
                                                $aNewList[$i][13] = FileReadLine($aFileList[$i], 13)
                                                $aNewList[$i][14] = FileReadLine($aFileList[$i], 14)
                                                $aNewList[$i][15] = FileReadLine($aFileList[$i], 15)
                Next
                _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($hListView))
                _GUICtrlListView_AddArray($hListView, $aNewList)

        EndIf
EndFunc



Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $iwParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo

    $hWndListView = GUICtrlGetHandle($hListView)
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
$Index = GUICtrlRead($hListView)


    Switch $hWndFrom
        Case $hWndListView
        Switch $iCode







        Case $NM_DBLCLK
        $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
        $Index = DllStructGetData($tInfo, "Index")
        $DoubleClick = _GUICtrlListView_GetItemText($hListView, $Index,12)
        ;MsgBox(0, 'Connect SOL to BMC IP', _GUICtrlListView_GetItemText($hListView, $Index,12))
                Run("cmd.exe")
                sleep(500)
                WinActivate("Administrator: C:\Windows\system32\cmd.exe")
                sleep(500)
                send("cd \TestStatusManagement\ipmitool_1.8.11")
                sleep(500)
                Send("{ENTER}")
                sleep(500)

                Send("ipmitool.exe -I lanplus -H "&$DoubleClick&" -U admin -P admin sol deactivate")
                sleep(500)
                Send("{ENTER}")
                sleep(500)

                Send("ipmitool.exe -I lanplus -H "&$DoubleClick&" -U admin -P admin sol activate")
                sleep(500)
                Send("{ENTER}")


EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
$tNMHDR = 0
EndFunc




Func _Checkitems()

        Local $path, $aFileList, $aNewList2[1][2]
        $path = @ScriptDir
        $aFileList = _FileListToArray($path, "*.txt")
                _ArrayDelete($aFileList,0)
        If IsArray($aFileList) Then

                ReDim $aNewList2[UBound($aFileList)][16] ;;;[Col count]
                For $i = 0 To UBound($aFileList) - 1 Step 1

                        $aNewList2[$i][0] = $aFileList[$i]
                        $aNewList2[$i][1] = FileReadLine($aFileList[$i], 1)
                        $aNewList2[$i][2] = FileReadLine($aFileList[$i], 2)
                        $aNewList2[$i][3] = FileReadLine($aFileList[$i], 3)
                        $aNewList2[$i][4] = FileReadLine($aFileList[$i], 4)
                                                $aNewList2[$i][5] = FileReadLine($aFileList[$i], 5)
                                                $aNewList2[$i][6] = FileReadLine($aFileList[$i], 6)
                                                $aNewList2[$i][7] = FileReadLine($aFileList[$i], 7)
                                                $aNewList2[$i][8] = FileReadLine($aFileList[$i], 8)
                                                $aNewList2[$i][9] = FileReadLine($aFileList[$i], 9)
                                                $aNewList2[$i][10] = FileReadLine($aFileList[$i], 10)
                                                $aNewList2[$i][11] = FileReadLine($aFileList[$i], 11)
                                                $aNewList2[$i][12] = FileReadLine($aFileList[$i], 12)
                                                $aNewList2[$i][13] = FileReadLine($aFileList[$i], 13)
                                                $aNewList2[$i][14] = FileReadLine($aFileList[$i], 14)
                                                $aNewList2[$i][15] = FileReadLine($aFileList[$i], 15)

                Next
              ; _ArrayDisplay($aNewList2)
        EndIf

                If IsArray($OldList) Then
                        For $j=0 TO UBound($OldList)-1 STEP 1
                                IF $OldList[$j][4]= $aNewList2[$j][4] Then
                                                                        _GUICtrlListView_SetItemText($hListView,$Index,"Off-line",7)
                                                                Else
                                                                        _GUICtrlListView_SetItemText($hListView,$Index,"On-line",7)
                                                                EndIf

                        Next
                        $OldList=$aNewList2
                                Else
                        $OldList=$aNewList2
                EndIf
EndFunc
发表于 2016-6-13 17:12:51 | 显示全部楼层
回复 26# ipmitool

1. 怪事 有錯誤 應該提供錯誤訊息吧   不然誰會知道錯誤在哪...........

2. 如果沒猜錯的話   $OldList 沒有宣告為全域變數的問題  我給你的範例  在最前面有宣告這個變數
 楼主| 发表于 2016-6-13 17:41:43 | 显示全部楼层
回复 27# kk_lee69


          有阿, 我加在第45行, 這樣不行喔?
发表于 2016-6-13 17:46:12 | 显示全部楼层
請提供 錯誤訊息
 楼主| 发表于 2016-6-13 18:31:13 | 显示全部楼层
回复 29# kk_lee69


    IF $OldList[$j][4]=$aNewList2[$j][4] THEN
IF ^ERROR

Error: Array variable has incorrect number of subscripts or subscript dimension range exceeded.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-26 01:01 , Processed in 0.121334 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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