Вы уверены, что используете «Microsoft Windows XP», а не «Microsoft Windows XP Professional»? Если вы используете знак «=», вы не поймаете его, потому что он ожидает совпадения с точной строкой Использовать instr () было бы лучше, если вы хотите частичное совпадение. В противном случае добавьте «Профессионал»
Вы можете включить некоторую отладку после того, как заголовок найден
....
msgbox strCaption & " " & len(strCaption)
getOperatingSystemCaption = strCaption
....
и попробуйте другой способ
.....
myCaption = getOperatingSystemCaption()
msgbox myCaption & " " & len(myCaption)
If myCaption = "Microsoft Windows XP Premium Home" Then
......
проверьте длину ...