在開發網路程式(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倍
如此一來,一次解決以上三個問題,太帥了
沒有留言:
張貼留言