国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

VB.NET聲明API詳細描述

開發 后端
這里介紹VB.NET聲明API,包括介紹VB6的代碼大家可以在下載的壓縮包中找到,作者提供了一個以記事本為基礎的實例,非常詳細無需詳細敘述了。

在向大家詳細介紹VB.NET聲明API之前,首先讓大家了解下API函數和DLL去修改目標窗口的默認處理函數,然后全面介紹VB.NET聲明API。

我們都知道在VB6里面可以用API函數來進行子類化,以處理自身的窗體過程;如果跨進程,這就麻煩了,由于我們的函數在我們的進程中(廢話),而目標進程的窗口的消息處理函數在目標進程(還是廢話),所以只能想辦法把我們的代碼放到對方進程中去執行——并且要告知我們的進程得到了什么消息??峙聦憛R編就有點嚇人了,于是大家都寫DLL,其原理就是把回調函數放到一個DLL里面注入到對方進程,DLL去修改目標窗口的默認處理函數——把消息發送給我們。

當然也有“另類”一點的:http://www.it-berater.org/ThueDownloads/index.shtml上面有一個 DLL包,其中含有一個dssubcls.dll,用它,可以輕松的完成我們的工作:就像調用一個API一樣簡單,而且在我們的程序中使用回調函數!呵呵,省去了自己寫DLL的麻煩之后,這些好處足以吸引各位觀眾了吧?

好了,VB6的代碼大家可以在下載的壓縮包中找到,作者提供了一個以記事本為基礎的實例(在\dssubcls目錄下),非常詳細無需詳細敘述了。關鍵是在VB.NET里面如何使用它——如何聲明API,如何進行回調,看用來子類化的API的VB6聲明先:

  1. Declare Function SubClass& Lib "dssubcls" (ByVal HwndSubclass&, _  
  2. Optional ByVal Address& = 0, _  
  3. Optional ByVal OldStyle& = 0, _  
  4. Optional ByVal NewStyle& = 0, _  
  5. Optional ByVal Ext& = 0, _  
  6. Optional ByVal SubClass& = 0) 

轉化成VB.NET聲明API類似下面的樣子(習慣使然,我把&展開成了As Integer):

  1. Declare Function SubClass Lib "dssubcls" (ByVal HwndSubclass As Integer,   
  2. Optional ByVal Address As Integer = 0, Optional ByVal OldStyle As Integer = 0,   
  3. Optional ByVal NewStyle As Integer = 0, Optional ByVal Ext As Integer = 0,   
  4. Optional ByVal SubClass As Integer = 0) As Integer 

這不是很好嘛?問題來了,這樣的聲明在VB6里面可以使用Addressof function來傳入第二個參數(參見你下載的源碼),但是在VB.NET里面直接Addressof就不成了——我們需要委托一個回調:

  1. Private Delegate Function HookCallBack(ByVal wMsg As Integer, 
    ByVal wParam As Integer, ByVal lParam As Integer) As Integer 

這個委托,對應的是以下函數:

  1. Private Function mCallback(ByVal wMsg As Integer, 
    ByVal wParam As Integer, ByVal lParam As Integer) As Integer  
  2. ‘在這里處理得到的消息  
  3. End Function 

使用時,需要注意先實例化這個委托:

  1. Private fix_COCD = New HookCallBack(AddressOf mCallback) 

此時,fix_COCD就是我們的mCallback函數引用了,用更直觀的觀點來看,fix_COCD就是一個指向mCallback的指針,相當于 VB6里面的Addressof function得到的結果,看似問題解決了,于是我們寫了以下代碼來搞對方的進程窗體消息:

  1. SubClass(Handle, fix_COCD, 0, 0, 0, 1) '修改處理函數 

問題真是接踵而至!IDE提示變量類型不符??!事實確實如此,我們把一個HookCallBack類型當做Integer來傳遞,無法通過檢查,那么強行轉換吧?當然,你可以去試試。這時,我所做的是,修改這個API聲明:

  1. Private Declare Function SubClass Lib "dssubcls" (ByVal HwndSubclass As Integer, 
    Optional ByVal Address As 
    HookCallBack = Nothing, Optional ByVal OldStyle As Integer = 0
    Optional ByVal NewStyle As 
    Integer = 0, Optional ByVal Ext As Integer = 0
    Optional ByVal SubClass As 
    Integer = 0) As Integet 

使之符合我們的調用?有點倒行逆施?并非如此,當你習慣了修改API聲明之后,會發現有些事變得如此簡單,有些事需要你重新認識——對于WIN32 API也是如此。

至此,VB.NET聲明API大功告成。

【編輯推薦】

  1. 詳細講述VB.NET開發控件
  2. VB.NET Control類的屬性和方法
  3. 解析VB.NET如何連接數據庫
  4. VB.NET應用程序中多線程的應用實例
  5. 淺析VB.NET程序學習經驗
責任編輯:佚名 來源: chinaitlab
相關推薦

2009-10-15 15:04:42

VB.NET PadL

2009-10-13 17:16:40

VB.NET Web服

2009-10-10 16:15:49

VB.NET開發多線程

2009-10-20 14:21:55

VB.NET fnSi

2009-10-19 14:22:13

VB.NET EIF體

2009-10-16 11:02:40

VB調用動態連接庫

2009-10-20 14:09:05

VB.NET反射功能

2009-10-27 12:06:01

VB.NET IDis

2009-10-28 09:55:29

VB.NET MyCl

2009-10-15 09:02:19

VB.NET申明數組

2009-10-14 13:56:05

VB.NET數據窗體

2010-01-21 16:37:56

VB.NET變量聲明

2010-01-22 10:41:33

VB.NET聲明結構

2009-11-11 13:24:29

VB.NET事件

2009-10-30 11:20:54

VB.NET Proc

2009-10-13 09:33:49

VB.NET Web

2010-01-21 16:45:00

VB.NET繼承規則

2009-11-02 15:45:03

VB.NET IEnu

2010-01-07 15:18:10

VB.NET常量

2009-10-12 13:54:22

VB.NET Data
點贊
收藏

51CTO技術棧公眾號

久久99国产精品久久99大师| 成人全视频在线观看在线播放高清| 免费亚洲婷婷| 美日韩精品免费观看视频| 男男激情在线| 中文在线免费一区三区高中清不卡| 久久国产精品一区二区三区| 亚洲精品播放| 日韩在线观看免费网站| 亚洲s色大片| 亚洲综合男人的天堂| 日韩精品xxxx| 麻豆一区二区99久久久久| 3d动漫精品啪啪一区二区三区免费| a∨色狠狠一区二区三区| 91精品国产综合久久精品app| 男人天堂av网站| 国产欧美日韩精品一区| 日本免费黄色小视频| 欧美一级免费视频| 91禁在线看| 久久久影院官网| 欧美乱妇20p| 久久伊人资源站| 亚洲人成电影| www.久久爱.com| 国产清纯白嫩初高生在线观看91 | 国产馆精品极品| 亚洲伊人一本大道中文字幕| 欧美午夜电影一区二区三区| 国产真实乱偷精品视频免| 欧美日韩亚洲网| 亚洲欧美国产一区二区| 香蕉久久夜色精品| 亚洲国产天堂久久国产91| 午夜免费电影一区在线观看| 青青草免费在线视频| av在线电影网| 日韩在线视频一区二区三区| 国产性色一区二区| 久久成人免费视频| av国产在线观看| 亚洲女同一区二区| 久久久久久久久久久久久久国产| 日本欧美加勒比视频| 69174成人网| 91精品福利观看| 国产精品久久久久婷婷二区次| 一区二区三区视频网| 2018av男人天堂| xxxx另类黑人| 在线综合视频播放| 91caoporn在线| 欧美日韩高清影院| 99热热99| 99久久精品无码一区二区毛片| 蜜臀精品久久久久久蜜臀| 精品一区久久久久久| 精品系列免费在线观看| 免费av网页| 激情欧美丁香| 免费毛片一区二区三区久久久| 午夜影院日韩| 伊人网在线免费| 91捆绑美女网站| 人人澡人人爽| 狠狠做深爱婷婷久久综合一区| 黄色av网站在线| 欧美mv日韩mv| 欧美久久久网站| 91精品成人久久| 91在线观看高清| 青青在线视频免费| 午夜精品久久久久久| 国产1区2区3区在线| 3d成人动漫网站| 成人黄色动漫| 久久精品亚洲国产| 色88久久久久高潮综合影院| 国产高清精品一区二区| 蜜桃av一区二区三区| 国产三区在线视频| 欧美日韩国产一中文字不卡| 超碰在线最新| 日韩在线观看av| 国模一区二区三区| 欧美一区二区三区爽大粗免费| 亚洲一区视频在线| 欧美xxxx黑人又粗又长| 亚州国产精品久久久| 久久一区二区视频| 污网站在线观看视频| 一区二区三区欧美久久| 99久久激情视频| 亚洲视频在线一区观看| 日本孕妇大胆孕交无码| 成人国产精品色哟哟| 久久黄色av网站| 91麻豆福利精品推荐| ckplayer中文字幕| 日韩欧美专区在线| 国产亚洲字幕| 国产精品三区在线| 久久亚洲一区二区三区四区| 国产一级在线观看| av二区三区| 欧美成人免费大片| 成人性生交大片免费| 美女91在线看| 国产卡一卡二在线| 久久视频免费在线播放| 韩国精品一区二区| 91精品久久久久久粉嫩| 国产日韩专区在线| 一区二区三区高清| 综合亚洲色图| 99视频入口| 91精品国产高清| 一区二区三区四区蜜桃| 久久久久久久999| 国产精品美女久久久久人| 欧美一级黑人aaaaaaa做受| 成人国产精品免费观看动漫 | 日本黄色成人| 超碰在线首页| 国产视频99| 国产丝袜一区视频在线观看| 亚洲欧洲精品天堂一级| 亚瑟一区二区三区四区| 国产人成网在线播放va免费| 日本黄色播放器| 99久久一区三区四区免费| 日韩国产在线一| 国产美女撒尿一区二区| 九色免费视频| 欧美日韩在线中文字幕| 韩国三级在线观看久| 91麻豆福利| 中文字幕第一页亚洲| 欧美一级艳片视频免费观看| 激情综合电影网| av在线电影观看| 少妇久久久久久被弄到高潮| 91久久国产最好的精华液| 国产一区二区三区精品在线观看 | 国内精品视频在线| 亚洲综合丝袜美腿| 中文精品在线| 超碰在线一区| 久草在线视频福利| 白浆爆出在线观看| 国产一区二区色| 亚洲精品日韩久久久| 亚洲国产精品一区二区www在线| 亚洲老司机在线| 亚洲视频一区二区在线| 亚洲国产欧美日韩在线观看第一区 | 亚洲人成网站77777在线观看| 麻豆系列在线观看| 天堂аⅴ在线最新版在线| 97cao在线| 国产高清一区视频| 亚洲裸体xxxx| 日韩一区二区三区观看| 日韩视频在线一区二区| 亚洲精品按摩视频| 欧洲另类一二三四区| 久久99久久99精品免视看婷婷| 国产精品亚洲一区二区在线观看| 亚洲精品乱码久久久久久蜜桃麻豆| 精品久久久久国产| 中文字幕亚洲欧美日韩2019| 91精品国产91久久久久久不卡| 欧美a在线视频| 日韩精品黄色| 色婷婷视频在线观看| 欧美日韩国产亚洲沙发| 中文字幕一区久| 久久精品资源| 日本aⅴ亚洲精品中文乱码| 国产精品一二三区| 久久久精品tv| 亚洲成人免费视频| 欧美精品18videosex性欧美| 天天综合五月天| 大菠萝精品导航| 国产成人av在线影院| 欧美性色欧美a在线播放| 亚洲www在线观看| 鲁一鲁一鲁一鲁一av| www国产精品| 亚洲xxx拳头交| 精品国产一区二区三区久久久蜜臀 | 色综合久久六月婷婷中文字幕| 99视频精品全国免费| 日本亚洲精品| 一本大道东京热无码aⅴ| 欧美久久久精品| 色一区在线观看| 国产福利一区二区三区视频|