成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

VB.NET嵌入文件操作技巧分享

開發 后端
VB.NET嵌入文件的應用在實際代碼編寫中是非常常見的一個操作。不過對初學者來說還是有些難以掌握的。下面我們就為大家詳細介紹下其中概念,方便大家理解。

VB.NET嵌入文件的應用方式有很多種。大家可以根據開發中的不同需求來進行選擇應用。下面我們就會對這一應用方式進行一個詳細的解讀,方便大家理解,提高大家的編程效率。#t#

在文件中嵌入文件,一般都是通過資源文件來實現的,至于具體的實現步驟,我想就不用我羅嗦了,網上有很多這樣的文章,不清楚的朋友可以自己搜索一下。但是有些情況下,用資源文件無法解決問題,就不得不迂回一下,比如要實現所謂的綠色軟件(在這里我要說明的是,這篇文章沒有涉及任何高級技巧,因此,您略過不看,我也不會感到難過),事實上,大家知道,VB程序的運行需要VB運行庫的支持,所以,用VB做綠色軟件幾乎是不可能的事。

幸運的是,某些版本的window預裝了VB的運行庫支持文件,為不可能變為可能,提供了機會。然而,一旦我們使用了第3方控件或在其他類似情況下,這種實現綠色軟件的可能就微乎其微了,怎么辦?如果用資源文件就稱不上綠色軟件了,那么,是不是就意味著我們必須放棄這種誘人的想法呢?別著急,往下看就知道應該如何去做了。:)

我的答案是直接以代碼的形式,將VB.NET嵌入文件應用到到我們的VB程序中,下面我假設您已經知道了如何用api函數注冊控件(當然在程序中調用regsvr32也可),知道了如何讀寫文件和注冊表,這些問題和本問題息息相關,您有必要知道,如果不知道也不要緊,可以通過搜索引擎獲取答案。

具體的實現步驟是:首先在程序加載時根據注冊表中的鍵值,判斷是否是第一次運行,如果是第一次運行,則將在您指定的路徑生成需要的文件并寫入數據,然后,調用api函數注冊控件,同時,寫注冊表,標記已運行過本程序。

寫文件的大致程序如下:

  1. Dim buff() As Byte 

接下來寫根據VB.NET嵌入文件的內容給數組賦值的語句

  1. Open 文件名 For Binary As #1  
  2. Put #1, , buff  
  3. Close #1 

 

看到這里,有些朋友要被我氣樂了,會憤怒的對我說:你說的這些我都知道,關鍵是怎么給數組賦值,難道你要我用16進制的編輯器查看文件數據,進行賦值嗎?這時,我會回答:是的,不過這個過程可以通過程序實現,看看下面的代碼:

 

  1. Private Sub writetext(ByVal
     FileName As String, ByVal 
    ByteArrayName As String, 
    ByVal TxtFile As String)  
  2. Dim i As Long  
  3. i = FileLen(FileName)  
  4. Dim arr() As Byte  
  5. ReDim arr(i - 1)   
  6. Open FileName For Binary As #1  
  7. Get #1, , arr  
  8. Close #1  
  9. Dim temps As String  
  10. Open TxtFile For Output As #1  
  11. Print #1, "ReDim " + 
    ByteArrayName + "(" + CStr(i - 1) + ")"  
  12. For i = 0 To UBound(arr)  
  13. temps = ByteArrayName + "
    (" + CStr(i) + ")=" + CStr(arr(i))  
  14. Print #1, temps  
  15. Next  
  16. Close #1  
  17. ''MsgBox "haha "  
  18. End Sub 

這段代碼的作用是自動將你需要手動輸入的代碼寫入一個文本文件,您剩下的工作就是,調用這段代碼,手動打開剛剛生成的文件,把文字全部選中,復制,并粘貼到VB中您需要手動編寫代碼的地方。其中參數FileName為您需要嵌入的文件的文件名,ByteArrayName為您程序中用到的數組名(如果用我那段讓您生氣的代碼,您就傳入"buff"),TxtFile為要生成的文本文件的文件名。假如,您要將您磁盤上的c:test.ocx嵌入程序,您在程序中的數組名稱為"buff",您可以這樣調用:

writetext "c:test.ocx", "buff", "d:mcmcbuff.txt",然后打開文件d:mcmcbuff.txt,進行,全選,復制,粘貼。

不得不說的是,盡管您可以在程序中釋放文件,自動注冊,但是如果您用的第3方控件是您畫到窗體上的,您的程序還是不會正常運行,也就是說,您必須在完成上面的步驟后,用代碼在窗體上添加控件(用controls.add,需要知道progid,可用api讀注冊表獲取,如果是activex dll的話,則用createobject進行綁定)。但是,這樣的話,您不得不解決對控件事件的響應問題,這時只能用VBControlExtender解決問題。

總而言之,盡管用VB可以實現綠色軟件,但是對第3方控件的處理實在是太麻煩了,而且文件體積會急劇增大,我的意見是這個綠色軟件不實現也罷,其實用我上面說的方法,VB.NET嵌入文件到一個不需要注冊的文件倒是一個不錯的主意,不過,希望不要做危害別人安全的事,比如說,嵌入一段木馬程序。

責任編輯:曹凱 來源: zdnet.com.cn
相關推薦

2010-01-13 10:25:30

VB.NET文件夾操作

2010-01-18 16:33:57

VB.NET加密文件

2010-01-07 13:40:50

VB.NET讀取XML

2010-01-07 10:02:53

Flash控制VB.N

2010-01-22 11:02:30

VB.NET創建新變量

2010-01-13 15:52:59

VB.NET浮動窗體

2010-01-18 18:50:26

VB.NET鼠標手勢

2010-01-13 15:33:40

VB.NET菜單項目

2010-01-14 16:04:32

VB.NET顯示時間

2010-01-18 16:41:47

VB.NET用戶登錄頁

2010-01-18 10:26:19

VB.NET中心旋轉圖

2010-01-11 15:31:04

VB.NET拖動窗體

2010-01-15 15:10:43

VB.NET Stri

2010-01-22 10:54:06

VB.NET結構變量

2010-01-14 14:46:57

2010-01-13 16:45:44

VB.NET刪除控件

2010-01-12 17:02:54

VB.NET文件上傳

2010-01-15 19:24:42

2010-01-22 16:27:19

VB.NET關于對話框

2010-01-19 15:30:44

VB.NET比較運算符
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美综合 | 黄色一级大片视频 | 伊人网伊人网 | 久久综合欧美 | 国产精品一区免费 | 欧美日韩视频在线播放 | 四虎影院新网址 | 日本一区二区三区在线观看 | 亚洲乱码一区二区三区在线观看 | 瑟瑟激情 | 99久久精品免费 | 成人九色 | 国产成人高清 | 国产亚洲精品久久久优势 | 欧美天堂 | 成人免费看黄 | 欧美综合在线视频 | 91短视频网址 | 欧美日韩视频在线第一区 | 精品一区二区久久久久久久网站 | 国产aⅴ | 久久999| 国产福利视频 | 青青草免费在线视频 | 91麻豆精品国产91久久久久久 | 日本天堂一区二区 | 中文在线一区 | 日韩精品一区二区三区中文在线 | 国产精品久久精品 | 粉嫩国产精品一区二区在线观看 | 久精品久久 | 亚洲国产精品久久久久久 | 女人一区| 99re在线视频观看 | 亚洲国产网站 | 国产精品永久 | 日韩免费一区二区 | 久久精品中文 | 91综合网 | 亚洲国产伊人 | 成人h视频在线观看 |