源起
在開發網路程式(ASP、ASP.NET...等)時,有些功能必須重複執行,通常會使用排程來設定這樣的工作。
但是如果程式設計師只有網路程式的經驗,不會寫WIN-FORM程式,好像也沒關係,寫成WEB版再設定以IE開啟即可。

以前的解決方案

指令如下:

"C:\Program Files\Internet Explorer\iexplore.exe" "http://url/?par1=value"

注意:因為路徑有空白,因此要加上"",否則會有找不到程式的錯誤

將指令設定到『工作排程』中執行即可完成此項任務。

問題點
但是這樣的解決方案看似容易,確有幾個問題:
1. IE是CLIENT端程式,必須在登入狀況下才能執行
2. IE會自動開啟,但是不會自動結束
3. IE是個大程式,佔用很多資源

2、3還好解決,用『工作排程』可以結束執行中的IE
1可以用自動登入來解決



最佳解決方案
最近SERVER換成Windows Server 2008,重新思考這個問題,希望能有較好的解決方案。
網路找了一下,發現有人用VBS來取代IE,是個不錯的方法,VBS程式碼列表如下:
---------------------------------------------------------------------------
Call OpenURL()


Sub OpenURL()
'Force the script to finish on an error.
On Error Resume Next
'Declare variables
Dim objRequest


Dim URL
Set objRequest = CreateObject("Microsoft.XMLHTTP")


'Put together the URL link appending the Variables.
URL = "http://url?par1=value"



'Open the HTTP request and pass the URL to the objRequest object
objRequest.open "POST", URL , false


'Send the HTML Request
objRequest.Send
'Set the object to nothing
Set objRequest = Nothing
End Sub

------------------------------------------------------------

主要原理是建立一個Microsoft.XMLHTTP object來取代IE

執行VBS: cscript xxx.vbs
執行時會開啟一個DOS CMD,執行完自動結束,比開啟IE快10倍

如此一來,一次解決以上三個問題,太帥了
文章標籤
全站熱搜
創作者介紹
創作者 CCH 的頭像
CCH

CCH的部落格

CCH 發表在 痞客邦 留言(0) 人氣(38)