如果你(特別是Chloe的老闆)同意,
- 一個網站不應該在客戶端的計算機
- 用戶對間諜有權獲得對他即將安裝的軟件的系統要求的一點幫助
- 此類幫助不應涉及降低安全設置
你的選擇是
- 列表中的需求,並給予詳細指導如何確定他們
- 窗口:提供用戶(下載)一個HTA源(HTML Application)生成/節目一個合適的報告
- unix/linux:提供用戶(下載)生成/顯示相應報告的腳本來源(至少選擇兩種流行語言)
- TE的安裝反正,將檢查的要求,你可以捆綁這些支票存入一個獨立的「確保」的要求申請
如果你決定一個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元素。有一個相當過時的wizard,可能會幫助您將HTA特定(交互)元素/代碼放入HTML中。某些MS安裝CD/DVD/ISO包含一個setup.hta,您可以使用它來獲取更多靈感;一些谷歌會指向你.hta應用程序,如System Documenter Wizard。如果沒有謹慎的單步測試,這些來源都不會被信任;例如:我從the official docs開始我的.hta,並且無法讓它在Windows 7上運行,直到我消除了令人討厭的<meta http-equiv="x-ua-compatible" content="ie=9">
。
雖然您可能會將腳本內嵌到.hta中,但對於開發人員來說,最好通過腳本標記的src屬性包含代碼。在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
我試圖按照您發佈的代碼;必要的更改是通過使用document.getElementById()
或document.body.all()
將「寫入」HTML元素的innerText/HTML替換WScript.Echo輸出。
要獲得想法/示例代碼以收集信息,請查看諸如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上使用非特權用戶帳戶對此進行了測試;我希望你的里程可能不會有所不同。 (可以將兩種不同的腳本語言放在同一個hta中):在.HTA(和.WSF或.WSC)中,可以混合所有(安裝的)ActiveScript語言(VBScript,JScript,Perlscript ,Pythonscript,Rubyscript,...)通過使用腳本標籤內聯或通過src屬性。這對學習非常有用,但通常不適用於生產代碼。
你想在客戶機上運行這個VBScript來獲取清理信息? – rkosegi 2012-01-12 19:29:28
也許你不記得ILOVEYOU蠕蟲? – 2012-01-12 19:34:01
@rkosegi我想要的是一種讓用戶訪問網站並檢查他們的計算機是否可以運行我們的軟件的方法,但即使我嘗試了不同的事情,所以如果您有其他想法,如果您可以共享cuz,我會很好 – chloe 2012-01-12 19:36:38