• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 利用VB實現“綠色”軟件<轉>

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    現在非常流行“綠色”軟件,不需要什么安裝程序只要一個 EXE 文件就可以運行程序了,而在 VB 的編程中有許多地方需要調用第三方的控件(很難用 API 函數搞定所有的功能),這就需要制做一個安裝程序,把所需要的控件、DLL 文件或其他文件打包進去了,那么在
      現在非常流行“綠色”軟件,不需要什么安裝程序只要一個 EXE 文件就可以運行程序了,而在 VB 的編程中有許多地方需要調用第三方的控件(很難用 API 函數搞定所有的功能),這就需要制做一個安裝程序,把所需要的控件、DLL 文件或其他文件打包進去了,那么在 VB 中怎么用變通的方法實現“綠色”軟件呢,請看示例:

    原文鏈接:利用VB實現“綠色”軟件

    1、主程序.EXE

      用 VB6.0 編寫的程序,調用了 Winsock 控件,如果在沒有安裝VB5.0、6.0 的機器上運行則會出現錯誤,導致程序運行失敗,這時如果按一般的方法,只有把這個程序用VB5.0、6.0 的安裝程序進行打包,不然只有用用2的方法來解決了。

    2、注冊程序.EXE

      用 VB6.0 編寫的程序,使用資源文件的方法,把 Winsock

    控件封裝到本程序中,在運行主程序.EXE之前,先運行本程序,通過API函數GetSystemDirectory取得系統的Winddows\System的目錄,然后把Winsock控件復制到該目錄下,并用Shell來完成控件的注冊。

     ?、艈?VB6.0,在“外接程序→外接程序管理器”中加載“Visual Basic 6 資源編輯器”

     ?、圃?VB 資源編輯器窗口中,點擊“添加自定義資料”,增加 Winsock 控件(C:\Winddows\System\nsck.ocx),再雙擊剛剛創建的自定義資源,彈出”編輯屬性”窗口,定義如下:
      類型: “OCX”
      標識號: 101
      語言: 中文(中國)

     ?、潜4尜Y源文件,寫如下代碼:
      Option Explicit
      Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
      Const MAX_PATH = 260 注釋:定義足夠長的字符串
      Private Sub Form_Load()
      Dim TempFile() As Byte
      Dim FileNum As Integer
      Dim TempDir As String
      TempDir = GetWinSysDir 注釋:自定義函數取得系統的 Winddows\System 的目錄
      TempFile = LoadResData(101, "OCX") 注釋:用以從資源 (.res) 文件裝載若干可能類型的數據,并返回一個 Byte 數組
      FileNum = FreeFile
      Open TempDir & "\nsck.ocx" For Binary Aclearcase/" target="_blank" >ccess Write As #FileNum 注釋:新建文件(把 Winsock 控件復制到指定目錄下)
      Put #FileNum, , TempFile
      Close #FileNum

      注釋:Shell "regsvr32 " & TempDir & "\nsck.ocx ", vbNormalFocus 注釋:注冊控件,有彈出對話框
    Shell "regsvr32 " & TempDir & "\nsck.ocx /s", vbNormalFocus 注釋:注冊控件,無彈出對話框

      MsgBox "注冊成功,現在本程序可正常運行了??!", vbOKOnly, "注冊控件"

      Unload Me
     End Sub

      Public Function GetWinSysDir() 注釋:定義讀取Winddows\System 的所在目錄的函數
      Dim S As String, Length As Long
      S = String(MAX_PATH, 0) 注釋:賦值
      Length = GetSystemDirectory(S, MAX_PATH) 注釋:S為取得目錄,MAX_PATH 為長度
      S = Left(S, InStr(S, Chr(0)) - 1) 注釋:去掉多余的空格
      GetWinSysDir = S
     End Function

    注釋:補充:S 和 MAX_PATH 的值是可以隨便賦的,
    注釋:如: Dim S As String * 20
    注釋: Length = GetSystemDirectory(S, 20)

    3、補充說明


      在用 VB6.0 保存上述兩個程序后,請再使用 VB5.0 重新打開這兩個程序,并編譯為主程序.EXE、注冊文件.EXE。(用 VB5.0 編譯的程序,在 Win98、2000 下不需要任何 DLL 文件)

    4、程序運行


      將主程序.EXE、注冊文件.EXE兩個文件,復制到任意機器上,先運行注冊文件.EXE注冊第三方的控件,再運行主程序.EXE,就不會有任何的錯誤了,一個變通的“綠色”軟件就完成了。

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>