校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 從 HTA 中啟動應用程序

從 HTA 中啟動應用程序

熱門標簽:徐州天音防封電銷卡 獲客智能電銷機器人 不錯的400電話辦理 湛江電銷防封卡 南昌辦理400電話怎么安裝 哈爾濱外呼系統代理商 佛山防封外呼系統收費 鄭州智能外呼系統運營商 電話機器人適用業務
如何從 HTA 中啟動應用程序?
問:
您好,腳本專家!對于 HTA,有沒有什么可以替代 Wscript.Shell 命令?我需要運行某個應用程序并指定要打開的文件。
-- DL
答:
您好,DL。是的,我們確實知道這樣的命令,可以在 HTA 中使用并可以替代 Wscript.Shell 命令,我們一會兒就會向您介紹。不過,在介紹它之前,我們應注意到您實際上可以在 HTA 中使用 Wscript.Shell 對象。這是一個常會引發混淆之處:因為您在 HTA 中無法使用某些命令(如 Wscript.Echo 和 Wscript.Sleep),人們就認為您在 HTA 中無法使用任何 WSH 命令。
繼續之前,還有一個問題:為什么您在 HTA 中無法使用 Wscript.Echo 和 Wscript.Sleep 呢?是這樣,這些方法是 Wscript 對象的屬性,而您是無法創建 Wscript 對象實例。Wscript 對象是自動創建的,而且只有在您運行 Windows Script Host(即 Wscript.exe 或 Cscript.exe)時才會創建。正因為這一點,才可以說以下腳本絕對有效:
復制代碼 代碼如下:

Wscript.Echo "Hey."

請注意,我們沒有創建 Wscript 對象,該對象是在我們調用 Windows Script Host 時自動創建的。
但這只限于 Wscript 對象。還有其他您可以創建的 WSH 對象,包括 Shell 對象。例如,下面是一個簡單的小 HTA,它創建 Wscript.Shell 對象,然后運行 Notepad.exe(并在此過程中打開文件 C:\Scripts\Test.txt):
復制代碼 代碼如下:

html>
head>
script language="VBScript">
Sub RunProgram
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "notepad.exe c:\scripts\test.txt"
End Sub
/script>
/head>
body>
button onclick="RunProgram">Run Program/button> p>
/body>
/html>

如您可以看到的,這差不多是您能獲得的最簡單的 HTA:它只由一個按鈕組成,單擊時會運行名為 RunProgram 的子例程。請看一下 RunProgram 的代碼:
復制代碼 代碼如下:

Sub RunProgram
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "notepad.exe c:\scripts\test.txt"
End Sub

就是這樣:我們創建 Wscript.Shell 對象的一個實例,然后調用 Run 方法。這樣就為 Run 傳遞了單一參數:可執行文件名 (notepad.exe) 后跟想要打開的文件的路徑。這就是我們需要做的一切。
順便說一句,只要是在 HTA 中運行該腳本,則不會有任何問題。如果嘗試在 HTML 文件(即文件擴展名為 .htm 的文件)中運行它,則會顯示一個消息框,警告您有一個 ActiveX 控件正在嘗試于頁面上運行。此時必須單擊是以允許該子例程創建 Shell 對象,并隨后運行它。這是因為 WSH 對象被認為“對腳本編寫是不安全的”。
注意:是啊,這聽起來有點怪,竟然認為腳本編寫對象對腳本編寫是不安全的。但這是因為 Internet Explorer 使用與 WSH 不同的腳本宿主和不同的安全模型。幸好 HTA 使用與 Internet Explorer 不同的安全模型,這意味著您在 HTA 內創建 Shell 對象時不會遇到此問題。
那么,如果是使用那個替代命令呢?嗯,如果出于某種原因您不想使用 Wscript.Shell 對象,則可以改為使用 Windows Shell 對象。下面的 HTA 也可以啟動記事本并打開文件 C:\Scripts\Test.txt:
復制代碼 代碼如下:

html>
head>
script language="VBScript">
Sub RunProgram
Const NORMAL_WINDOW = 1
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "notepad.exe", "c:\scripts\test.txt", , , NORMAL_WINDOW
End Sub
/script>
/head>
body>
button onclick="RunProgram">Run Program/button> p>
/body>
/html>

坦白地講,我們認為使用 Windows Shell 對象與使用 Wscript.Shell 對象相比并沒有什么真正的優勢:這兩個對象的功能基本上一樣。不過,如果您想要擺弄一下 Windows Shell,請查閱有關 ShellExecute 方法的文檔。重要的是這一點:如果想要從 HTA 啟動應用程序,兩種方法都可以使用。

標簽:廣西 紹興 安康 蕪湖 懷化 呂梁 蘭州 吉安

巨人網絡通訊聲明:本文標題《從 HTA 中啟動應用程序》,本文關鍵詞  從,HTA,中,啟動,應用程序,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《從 HTA 中啟動應用程序》相關的同類信息!
  • 本頁收集關于從 HTA 中啟動應用程序的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 香河县| 寿阳县| 莱西市| 泾川县| 嵊泗县| 霍山县| 塔城市| 襄城县| 玉溪市| 罗山县| 翁源县| 延长县| 凤山县| 班戈县| 山阴县| 白城市| 家居| 东阳市| 云林县| 永仁县| 雷波县| 浙江省| 徐闻县| 玛曲县| 海淀区| 沁源县| 延吉市| 甘泉县| 平山县| 崇明县| 砀山县| 精河县| 镇雄县| 岱山县| 蒲江县| 全椒县| 明水县| 观塘区| 陕西省| 双峰县| 贵定县|