程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 讓你的程序也能執行腳本

讓你的程序也能執行腳本

編輯:關於VC++

VBScript(JScript)是應用廣泛,簡單易學的腳本語言。使用VBScript(JScript)調用COM組件則更是容易。那麼,如果在你的程序中也能夠執行腳本,則在簡化程序設計的基礎上,還會極大地提升軟件的功能。為了方便大家使用這個功能,我寫了一個具有自動化(Automation/IDispatch)功能的EXE包裝程序來代理調用腳本執行。這個包裝程序接口只有2個函數,說明如下:

Void SetScriptLanguage(long nLanguage);

功能:設置使用腳本語言的類型

參數:0=使用VBScript 1=使用Jscript

說明:如果不調用這個函數,則默認使用VBScript

Void Run(LPCSTR lpszProgram);

功能:執行腳本

參數:腳本程序

使用方法與步驟:(以下的說明,是以VC6為藍本,VC7的用戶請參照進行操作變化)

復制文件到任意一個文件夾中,然後至少執行VBSENGIN.EXE 程序一次。完成組件的注冊工作。

創建或打開一個MFC的程序工程。

添加代碼,進行COM初始化。在App的InitInstance()函數中添加AfxOleInit()的調用。或者在使用COM功能之前調用函數CoInitialize(NULL),而COM功能結束後調用 CoUninitialize()。

添加VBSENGIN.TLB到工程中。打開ClassWizard對話窗,執行Add Class按鈕的From a type library。然後選擇VBSENGIN.TLB文件,加入IVBSEngin接口的包裝類。

在你程序中的的適當地方(比如OnButton()函數),填寫如下代碼,執行腳本。

#include "vbsengin.h"
OnButton()
{
  IVBSEngin vbsEngin;  //聲明一個腳本執行代理對象
  if(vbsEngin.CreateDispatch("VBSEngin.Api")) //啟動腳本執行代理
  {
    vbsEngin.Run(sProgram);  //執行腳本,sProgram中存放的是腳本源程序
    vbsEngin.ReleaseDispatch(); //釋放腳本執行代理
  }
}

應用舉例

使用VBScript腳本,實現把一些文本傳送到WORD中,並保存為DOC文件。(關於調用WORD功能的腳本,大家可以在WORD中錄制宏程序,稍微修改就可以轉換為VBScript腳本程序了)

''''啟動WORD
Set word=CreateObject("Word.Application")
''''顯示WORD程序界面(不執行這行,那麼你的WORD調用不會被用戶看到)
word.Visible=True
''''增加一個新文檔
word.Documents.Add
''''輸入文本
word.Selection.TypeText("Hello")
''''輸入回車
word.Selection.TypeParagraph
word.Selection.TypeText("good morning")
''''保存
word.ActiveDocument.SaveAs("c:\Hello.doc")
''''退出WORD程序
word.Quit(False)
''''釋放WORD接口
Set word=Nothing

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved