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 |
---|