Если вы (и особенно начальник Хлои) согласны, то
- сайт не должен шпионить за компьютером клиента
- пользователь имеет право на небольшую помощь по системным требованиям для программного обеспечения, которое он собирается установить
- такая помощь не должна включать снижение настроек безопасности
ваш выбор
- перечислить требования и дать подробную инструкцию, как их определить
- windows: предложить пользователю (для загрузки) источник HTA ( HTML-приложение ), которое генерирует / показывает соответствующий отчет
- unix / linux: предложить пользователю (для загрузки) исходный код скрипта (выберите как минимум два популярных языка), который генерирует / показывает соответствующий отчет
- учитывая, что вы все равно напишите установщик, который проверит требования, вы можете объединить эти проверки в независимое приложение «удостоверьтесь в требованиях»
Если вы решите, что HTA подойдет, так и скажите, и я добавлю к этому ответу.
Для начала:
Минималистичный sysreq.hta:
<html>
<head>
<title>System Requirements For XXX</title>
<hta:application
id="sysreq"
></hta>
<script type="text/vbscript" src="sysreq.vbs"></script>
<script type="text/jscript" src="sysreq.js"></script>
</head>
<body onload="onload">
<table id="tblSysReq" border="1" summary="KeepTidyHappy">
<tr>
<td id="tdOS">
</td>
</tr>
<tr>
<td id="tdMSSQL">
</td>
</tr>
</table>
</body>
</html>
Для рабочей версии вы должны написать красивую страницу, используя ваш HTML-редактор / ide, и просто вставить элемент hta. Существует довольно устаревший мастер , который может помочь вам вставить HTA-специфические (интерактивные) элементы / код в ваш HTML. Некоторые установочные компакт-диски MS / DVD / ISO содержат файл setup.hta, который вы можете использовать для дальнейшего вдохновения; некоторые поиски в Google укажут на такие приложения .hta, как Мастер документирования системы . Ни одному из этих источников нельзя доверять без тщательного одноэтапного тестирования; например: я запустил свой .hta из официальных документов и не смог запустить его на Windows 7, пока я не закинул противную <meta http-equiv="x-ua-compatible" content="ie=9">
.
Несмотря на то, что вы, вероятно, включите встроенный скрипт в .hta, для разработки лучше включить код через атрибут src тега script. В sysreq.vbs:
Sub onload()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colSettings
' Wscript.Echo "OS Name: " & objOperatingSystem.Caption
document.getElementById("tdOS").innerText = "OS Name: " & objOperatingSystem.Caption
Next
If False Then
Dim WSHShell : Set WSHShell = CreateObject("WScript.Shell")
On error resume next
' test = wshshell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names")
test = wshshell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL\SQLEXPRESS")
If 0 <> Err.Number Then
' msgbox "SQL Server not found"
MsgBox Err.Description
test = "SQL Server <b>not</b> found"
Else
' msgbox "SQL Server found"
test = "<i>SQL Server found</i>"
End If
document.body.all("tdMSSQL").innerHTML = test
Else
JsHelper
End If
End Sub
Я пытался следовать опубликованному вами коду; необходимые изменения - заменить вывод WScript.Echo путем «записи» в HTML-элементы «innerText / HTML» с использованием document.getElementById()
или document.body.all()
.
Чтобы получить идеи / примеры кода для сбора информации, взгляните на такие инструменты, как Scriptomatic . Как вы упомянули JScript, я добавляю sysreq.js:
function JsHelper() {
var WSHShell = new ActiveXObject("WScript.Shell")
try {
var test = WSHShell.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server\\Instance Names\\SQL\\SQLEXPRESS");
document.all.tdMSSQL.innerHTML = "<i>SQL Server found</i>";
}
catch(e) {
alert(e);
document.all.tdMSSQL.innerHTML = "SQL Server <b>not</b> found";
}
}
для сравнения кода JScript и VBScript, имеющего дело с одной и той же проблемой.
Для чего это стоит - Я проверил это на Windows XP и 7, используя непривилегированную учетную запись пользователя; Я надеюсь ваш пробег может не меняться.
Вопрос Хлои WRT «можно ли поместить два разных языка сценариев в один и тот же hta?»: В .HTA (и .WSF или .WSCs) вы можете смешивать все (установленные) языки ActiveScript (VBScript, JScript, Perlscript, Pythonscript, Rubyscript, ...) с помощью встроенного тега script или с помощью атрибута src. Это отлично подходит для обучения, но в целом не подходит для производственного кода.