I ve got an html application (HTA) that uses WshShell.Exec to get the version of Windows. I m using wmic os get Caption
to get the specific version, which works fine on the command line and in a batch script. I ve also tested the way I m calling WshShell.Exec
and it works fine with other commands (i.e. echo Windows 2008
). The problem occurs when I try to combine these things the Exec seems to just freeze. Can you recommend a way around this? Here s my code:
Function GetWinVersion
Returns 2008, XP, or 7
set WshShell = CreateObject("WScript.Shell")
set oExec = WshShell.Exec("wmic os get Caption")
do while oExec.Status = 0
I added this very busy wait, though it doesn t seem to help
Would sleep if it was available in an hta
loop
While oExec.StdOut.AtEndOfStream <> True
thisLine = oExec.StdOut.ReadLine
MsgBox "Found line: " & thisLine
if InStr(thisLine, "2008") > 0 then
GetWinVersion=2008
Exit Function
elseif InStr(thisLine, "XP") > 0 then
GetWinVersion=XP
Exit Function
elseif InStr(thisLine, "Windows 7") > 0 then
GetWinVersion=7
Exit Function
end if
Wend
MsgBox "Error parsing output of wmic os get Caption"
self.Close
End Function