| 1 | #Region ;**** Directives created by AutoIt3Wrapper_GUI **** |
|---|
| 2 | #AutoIt3Wrapper_icon=WhatIE.ico |
|---|
| 3 | #AutoIt3Wrapper_outfile=WhatIE.exe |
|---|
| 4 | #AutoIt3Wrapper_Compression=4 |
|---|
| 5 | #AutoIt3Wrapper_Res_Fileversion=0.0.0.40 |
|---|
| 6 | #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y |
|---|
| 7 | #AutoIt3Wrapper_Res_Language=1033 |
|---|
| 8 | #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** |
|---|
| 9 | |
|---|
| 10 | Global Const $debug = False |
|---|
| 11 | Opt("MustDeclareVars", 1) |
|---|
| 12 | Opt("TrayAutoPause", 0) |
|---|
| 13 | Opt("TrayMenuMode", 0) |
|---|
| 14 | Opt("TrayIconHide", 0) |
|---|
| 15 | |
|---|
| 16 | #include <OneInstance.au3> |
|---|
| 17 | |
|---|
| 18 | _ConfigInitialize() |
|---|
| 19 | |
|---|
| 20 | #include <GuiToolBar.au3> |
|---|
| 21 | Global $MaxWaitTime = 5 * 60 * 1000 |
|---|
| 22 | Global $SleepTime = 500 |
|---|
| 23 | Global $databasefile = "\\serverx\sharey\WhatIE.db" |
|---|
| 24 | _WaitForHibun() |
|---|
| 25 | |
|---|
| 26 | #include <SQLite.au3> |
|---|
| 27 | #include <SQLite.dll.au3> |
|---|
| 28 | |
|---|
| 29 | _WaitForDatabase() |
|---|
| 30 | |
|---|
| 31 | Global $sSQliteDll = _SQLite_Startup() |
|---|
| 32 | Global $sSQLiteDB = _SQLite_Open($databasefile) |
|---|
| 33 | |
|---|
| 34 | Global $iepath, $iever, $splitver, $major, $minor, $revision, $build, $sql, $err, $query |
|---|
| 35 | Global $attempt = 0 |
|---|
| 36 | |
|---|
| 37 | $iepath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IE Setup\Setup", "Path") & "\iexplore.exe" |
|---|
| 38 | $iepath = StringReplace($iepath, "%programfiles%", EnvGet("programfiles")) |
|---|
| 39 | $iever = FileGetVersion(FileGetLongName($iepath)) |
|---|
| 40 | $splitver = StringSplit($iever, ".") |
|---|
| 41 | $major = "0" |
|---|
| 42 | $minor = "0" |
|---|
| 43 | $revision = "0" |
|---|
| 44 | $build = "0" |
|---|
| 45 | If $splitver[0] > 0 Then |
|---|
| 46 | $major = $splitver[1] |
|---|
| 47 | If $splitver[0] > 1 Then |
|---|
| 48 | $minor = $splitver[2] |
|---|
| 49 | If $splitver[0] > 2 Then |
|---|
| 50 | $revision = $splitver[3] |
|---|
| 51 | If $splitver[0] > 3 Then |
|---|
| 52 | $build = $splitver[4] |
|---|
| 53 | EndIf |
|---|
| 54 | EndIf |
|---|
| 55 | EndIf |
|---|
| 56 | EndIf |
|---|
| 57 | Do |
|---|
| 58 | $attempt += 1 |
|---|
| 59 | If _DataExists(@ComputerName) Then |
|---|
| 60 | $query = "UPDATE OR REPLACE iever SET " |
|---|
| 61 | $query &= "path = '" & $iepath & "', " |
|---|
| 62 | $query &= "major = '" & $major & "', " |
|---|
| 63 | $query &= "minor = '" & $minor & "', " |
|---|
| 64 | $query &= "revision = '" & $revision & "', " |
|---|
| 65 | $query &= "build = '" & $build & "', " |
|---|
| 66 | $query &= "WHERE (hostname='" & StringLower(@ComputerName) & "');" |
|---|
| 67 | Else |
|---|
| 68 | $query = "INSERT OR REPLACE INTO iever VALUES (" |
|---|
| 69 | $query &= "'" & StringLower(@ComputerName) & "', " |
|---|
| 70 | $query &= "'" & $iepath & "', " |
|---|
| 71 | $query &= "'" & $major & "', " |
|---|
| 72 | $query &= "'" & $minor & "', " |
|---|
| 73 | $query &= "'" & $revision & "', " |
|---|
| 74 | $query &= "'" & $build & "');" |
|---|
| 75 | EndIf |
|---|
| 76 | $sql = _SQLite_Exec($sSQLiteDB, $query) |
|---|
| 77 | $err = @error |
|---|
| 78 | Until (Not $err) Or ($attempt = 3) |
|---|
| 79 | If $err Then MsgBox(48, @ScriptName, "Error writing to database: " & $err & "[" & $sql & "]" & @CRLF & "Please report these numbers to the Help Desk", 5) |
|---|
| 80 | Exit |
|---|
| 81 | |
|---|
| 82 | Func _DataExists($host) |
|---|
| 83 | Local $h = StringLower($host) |
|---|
| 84 | Local $res = _SQLite_Exec($sSQLiteDB, "SELECT * FROM iever WHERE hostname=" & $h) |
|---|
| 85 | If $res = $SQLITE_OK Then |
|---|
| 86 | Return True |
|---|
| 87 | Else |
|---|
| 88 | Return False |
|---|
| 89 | EndIf |
|---|
| 90 | EndFunc ;==>_DataExists |
|---|
| 91 | |
|---|
| 92 | Func _WaitForHibun() |
|---|
| 93 | Local $iSystray_IconText |
|---|
| 94 | Local $doneloop = False |
|---|
| 95 | Local $waittime = 0 |
|---|
| 96 | Local $HibunPath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\HITACHI\HIBUN-AE\0801\PathName", "Path00") |
|---|
| 97 | If Not StringRight($HibunPath, 1) = "\" Then $HibunPath &= "\" |
|---|
| 98 | Do |
|---|
| 99 | Sleep($SleepTime) |
|---|
| 100 | $waittime += $SleepTime |
|---|
| 101 | If $waittime > $MaxWaitTime Then $doneloop = True |
|---|
| 102 | $iSystray_IconText = Get_Systray_IconText("HIBUN AE Server") |
|---|
| 103 | If StringInStr($iSystray_IconText, "- Connected") > 0 Then $doneloop = True |
|---|
| 104 | Until $doneloop |
|---|
| 105 | EndFunc ;==>_WaitForHibun |
|---|
| 106 | |
|---|
| 107 | Func _WaitForDatabase() |
|---|
| 108 | Local $doneloop = False |
|---|
| 109 | Local $waittime = 0 |
|---|
| 110 | Do |
|---|
| 111 | Sleep($SleepTime) |
|---|
| 112 | $waittime += $SleepTime |
|---|
| 113 | If $waittime > $MaxWaitTime Then $doneloop = True |
|---|
| 114 | If FileExists($databasefile) Then $doneloop = True |
|---|
| 115 | Until $doneloop |
|---|
| 116 | If Not FileExists($databasefile) Then |
|---|
| 117 | MsgBox(48, "Prescript", "Unable to locate database" & @CRLF & "Please notify the Help Desk",5) |
|---|
| 118 | EndIf |
|---|
| 119 | EndFunc ;==>_WaitForDatabase |
|---|
| 120 | |
|---|
| 121 | Func Get_Systray_IconText($sToolTipTitle) |
|---|
| 122 | ; Find systray handle |
|---|
| 123 | Local $hSystray_Handle = ControlGetHandle('[Class:Shell_TrayWnd]', '', '[Class:ToolbarWindow32;Instance:1]') |
|---|
| 124 | If @error Then |
|---|
| 125 | Return "" |
|---|
| 126 | EndIf |
|---|
| 127 | ; Get systray item count |
|---|
| 128 | Local $iSystray_ButCount = _GUICtrlToolbar_ButtonCount($hSystray_Handle) |
|---|
| 129 | If $iSystray_ButCount = 0 Then |
|---|
| 130 | Return "" |
|---|
| 131 | EndIf |
|---|
| 132 | ; Look for wanted tooltip |
|---|
| 133 | Local $iSystray_ButtonNumber |
|---|
| 134 | For $iSystray_ButtonNumber = 0 To $iSystray_ButCount - 1 |
|---|
| 135 | Local $sText = _GUICtrlToolbar_GetButtonText($hSystray_Handle, $iSystray_ButtonNumber) |
|---|
| 136 | If StringInStr($sText, $sToolTipTitle) = 1 Then Return $sText |
|---|
| 137 | Next |
|---|
| 138 | Return SetError(1, 0, "") |
|---|
| 139 | EndFunc ;==>Get_Systray_IconText |
|---|
| 140 | |
|---|
| 141 | Func _ConfigInitialize() |
|---|
| 142 | If @OSVersion = "WIN_2003" Then Exit |
|---|
| 143 | OnAutoItExitRegister("_ConfigDestroy") |
|---|
| 144 | |
|---|
| 145 | Global $MyName = StringLeft(@ScriptFullPath, StringInStr(@ScriptFullPath, ".", 0, -1) - 1) |
|---|
| 146 | $MyName = StringRight($MyName, StringLen($MyName) - StringInStr($MyName, "\", 0, -1)) |
|---|
| 147 | EndFunc ;==>_ConfigInitialize |
|---|
| 148 | |
|---|
| 149 | Func _ConfigDestroy() |
|---|
| 150 | _SQLite_Close() |
|---|
| 151 | _SQLite_Shutdown() |
|---|
| 152 | EndFunc ;==>_ConfigDestroy |
|---|