日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VB.net实现从ListView控件中异地获取文本内容源代码

發布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VB.net实现从ListView控件中异地获取文本内容源代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于一些VB6工程代碼來說,需要完成從VB到VB.net的轉換,在轉換過程中需要注意很多內容,利用VB.net的直接轉換功能很少能完全成功,需要我們付出很大的努力。

下面的VB.net代碼實現從其他應用程序中的ListView控件中異地獲取文本內容,是從VB6的代碼中轉換而來,包括一些舊類型的轉換和數據類型聲明的變化。

view plaincopy to clipboardprint?

??1?Option?Explicit?On????
??2?Module?Module1???
??3?????Public?Structure?LV_ITEMA???
??4?????????Dim?mask?As?Integer??
??5?????????Dim?iItem?As?Integer??
??6?????????Dim?iSubItem?As?Integer??
??7?????????Dim?state?As?Integer??
??8?????????Dim?stateMask?As?Integer??
??9?????????Dim?pszText?As?Integer??
?10?????????Dim?cchTextMax?As?Integer??
?11?????????Dim?iImage?As?Integer??
?12?????????Dim?lParam?As?Integer??
?13?????????Dim?iIndent?As?Integer??
?14?????End?Structure??
?15?????'Constants???
?16?????Private?Const?LVFI_PARAM?=?1???
?17?????Private?Const?LVM_FIRST?=?&H1000???
?18?????Private?Const?LVM_FINDITEM?=?LVM_FIRST?+?13???
?19?????Private?Const?LVM_GETITEMTEXT?=?LVM_FIRST?+?45???
?20?????Private?Const?LVM_SORTITEMS?=?LVM_FIRST?+?48???
?21?????Private?Const?LVM_GETHEADER?=?LVM_FIRST?+?31???
?22?????Private?Const?LVM_GETITEMCOUNT?=?(LVM_FIRST?+?4)???
?23?????Private?Const?HDM_FIRST?=?&H1200?'//?Header?messages???
?24?????Private?Const?HDM_GETITEMCOUNT?=?(HDM_FIRST?+?0)???
?25?????Private?Const?HDM_ORDERTOINDEX?=?(HDM_FIRST?+?15)???
?26?????Private?Const?PROCESS_QUERY_INFORMATION?=?1024???
?27?????Private?Const?PROCESS_VM_OPERATION?=?&H8???
?28?????Private?Const?PROCESS_VM_READ?=?&H10???
?29?????Private?Const?PROCESS_VM_WRITE?=?&H20???
?30?????Private?Const?PROCESS_ALL_ACCESS?As?Long?=?&H1F0FFF???
?31?????Private?Const?STANDARD_RIGHTS_REQUIRED?=?&HF0000???
?32?????Private?Const?MAX_LVMSTRING?As?Integer?=?255?'可根椐讀取數據長度設置適當的數值???
?33?????Private?Const?MEM_COMMIT?=?&H1000???
?34?????Private?Const?MEM_RELEASE?=?&H8000???
?35?????Private?Const?PAGE_READWRITE?=?&H4???
?36?????Private?Const?LVIF_TEXT?As?Integer?=?&H1???
?37?????'API?declarations???
?38?????Private?Declare?Function?CloseHandle?Lib?"kernel32"?(ByVal?hObject?As?Integer)?As?Integer??
?39?????Private?Declare?Function?ReadProcessMemory?Lib?"kernel32"?(ByVal?hProcess?As?Integer,?ByVal?lpBaseAddress?As?Integer,?ByRef?lpBuffer?As?Byte,?ByVal?nSize?As?Integer,?ByVal?lpNumberOfBytesWritten?As?Integer)?As?Integer??
?40?????Private?Declare?Function?VirtualFreeEx?Lib?"kernel32"?(ByVal?hProcess?As?Integer,?ByVal?lpAddress?As?Integer,?ByVal?dwSize?As?Integer,?ByVal?dwFreeType?As?Integer)?As?Integer??
?41?????Private?Declare?Function?WriteProcessMemory?Lib?"kernel32"?(ByVal?hProcess?As?Integer,?ByVal?lpBaseAddress?As?Integer,?ByRef?lpBuffer?As?LV_ITEMA,?ByVal?nSize?As?Integer,?ByVal?lpNumberOfBytesWritten?As?Integer)?As?Integer??
?42?????Private?Declare?Function?VirtualAllocEx?Lib?"kernel32"?(ByVal?hProcess?As?Integer,?ByVal?lpAddress?As?Integer,?ByVal?dwSize?As?Integer,?ByVal?flAllocationType?As?Integer,?ByVal?flProtect?As?Integer)?As?Integer??
?43?????Private?Declare?Function?OpenProcess?Lib?"kernel32"?(ByVal?dwDesiredAccess?As?Integer,?ByVal?bInheritHandle?As?Integer,?ByVal?dwProcId?As?Integer)?As?Integer??
?44?????Private?Declare?Function?GetWindowThreadProcessId?Lib?"user32"?(ByVal?hwnd?As?Integer,?ByRef?lpdwProcessId?As?Integer)?As?Integer??
?45?????Private?Declare?Function?SendMessage?Lib?"user32"?Alias?"SendMessageA"?(ByVal?hwnd?As?Integer,?ByVal?wMsg?As?Integer,?ByVal?wParam?As?Integer,?ByVal?lParam?As?Integer)?As?Integer??
?46?????Public?Function?GetListviewItem(ByVal?hWindow?As?Integer,?ByVal?ProcessID?As?Integer,?ByVal?pColumn?As?Integer,?ByVal?pRow?As?Integer)?As?String??
?47?????????Dim?Result?As?Integer??
?48?????????Dim?myItem?As?LV_ITEMA???
?49?????????Dim?pHandle?As?Integer??
?50?????????Dim?pStrBufferMemory?As?Integer??
?51?????????Dim?pMyItemMemory?As?Integer??
?52?????????Dim?strBuffer()?As?Byte??
?53?????????Dim?Index?As?Integer??
?54?????????Dim?tmpString?As?String??
?55?????????Dim?strLength?As?Integer??
?56?????????'******************************???
?57?????????'為動態數組變量重新分配存儲空間???
?58?????????'******************************???
?59?????????ReDim?strBuffer(MAX_LVMSTRING)???
?60?????????'*****************************************************************************************************???
?61?????????'打開一個現有進程的句柄,返回值Long,如執行成功,返回進程句柄;零表示失敗。會設置GetLastError???
?62?????????'Public?Declare?Function?OpenProcess?Lib?"kernel32"?(ByVal?dwDesiredAccess?As?Long,?ByVal?bInheritHandle?As?Long,?ByVal?dwProcId?As?Long)?As?Long???
?63?????????'參數?類型及說明???
?64?????????'dwDesiredAccess?Long,指定這個句柄要求的訪問方法。指定API32.TXT文件中以PROCESS_???開頭的一個或多個常數???
?65?????????'bInheritHandle?Long,如句柄能夠由子進程繼承,則為TRUE???
?66?????????'dwProcessId?Long,要打開那個進程的進程標識符???
?67?????????'*****************************************************************************************************???
?68?????????pHandle?=?OpenProcess(PROCESS_ALL_ACCESS,?False,?ProcessID)???
?69?????????'*****************************************************************************************************???
?70?????????'VirtualAllocEx(目標進程的句柄,0,內存區域的大小,分配類型,新分配內存的存取保護類型)?返回所分配頁面的基址???
?71?????????'*****************************************************************************************************???
?72?????????pStrBufferMemory?=?VirtualAllocEx(pHandle,?0,?MAX_LVMSTRING,?MEM_COMMIT,?PAGE_READWRITE)???
?73?????????'*************************************************???
?74?????????'初始化LV_ITEM?結構???
?75?????????'MyItem.iSubItem?列的索引號???
?76?????????'myItem.pszText?數據內容(此處是一個分配的內存地址)???
?77?????????'*************************************************???
?78?????????myItem.mask?=?LVIF_TEXT???
?79?????????myItem.iSubItem?=?pColumn???
?80?????????myItem.pszText?=?pStrBufferMemory???
?81?????????myItem.cchTextMax?=?MAX_LVMSTRING???
?82?????????'***********************************************************???
?83?????????'把這個結構寫入遠程進程process's?存儲量???
?84?????????'WriteProcessMemory(目標進程的句柄,地址,寫入的數據,字節數,0)???
?85?????????'***********************************************************???
?86?????????pMyItemMemory?=?VirtualAllocEx(pHandle,?0,?Len(myItem),?MEM_COMMIT,?PAGE_READWRITE)???
?87?????????Result?=?WriteProcessMemory(pHandle,?pMyItemMemory,?(myItem),?Len(myItem),?0&)???
?88?????????'********************************???
?89?????????'發送消息,得到項目信息和寫入內存???
?90?????????'********************************???
?91?????????strLength?=?SendMessage(hWindow,?LVM_GETITEMTEXT,?pRow,?pMyItemMemory)???
?92?????????Result?=?ReadProcessMemory(pHandle,?pStrBufferMemory,?strBuffer(0),?MAX_LVMSTRING,?0)???
?93?????????tmpString?=?System.Text.Encoding.Default.GetString(strBuffer).Trim???
?94?????????Result?=?ReadProcessMemory(pHandle,?pMyItemMemory,?myItem,?Len(myItem),?0)???
?95?????????'****************************???
?96?????????'釋放分配的內存和關閉進程句柄???
?97?????????'****************************???
?98?????????Result?=?VirtualFreeEx(pHandle,?pStrBufferMemory,?0,?MEM_RELEASE)???
?99?????????Result?=?VirtualFreeEx(pHandle,?pMyItemMemory,?0,?MEM_RELEASE)???
100?????????Result?=?CloseHandle(pHandle)???
101?????????If?Len(tmpString)?>?0?Then?GetListviewItem?=?tmpString???
102?????End?Function??
103?End?Module??
104?Option?Explicit?On?
105?Module?Module1
106?????Public?Structure?LV_ITEMA
107?????????Dim?mask?As?Integer
108?????????Dim?iItem?As?Integer
109?????????Dim?iSubItem?As?Integer
110?????????Dim?state?As?Integer
111?????????Dim?stateMask?As?Integer
112?????????Dim?pszText?As?Integer
113?????????Dim?cchTextMax?As?Integer
114?????????Dim?iImage?As?Integer
115?????????Dim?lParam?As?Integer
116?????????Dim?iIndent?As?Integer
117?????End?Structure
118?????'Constants
119?????Private?Const?LVFI_PARAM?=?1
120?????Private?Const?LVM_FIRST?=?&H1000
121?????Private?Const?LVM_FINDITEM?=?LVM_FIRST?+?13
122?????Private?Const?LVM_GETITEMTEXT?=?LVM_FIRST?+?45
123?????Private?Const?LVM_SORTITEMS?=?LVM_FIRST?+?48
124?????Private?Const?LVM_GETHEADER?=?LVM_FIRST?+?31
125?????Private?Const?LVM_GETITEMCOUNT?=?(LVM_FIRST?+?4)
126?????Private?Const?HDM_FIRST?=?&H1200?'//?Header?messages
127?????Private?Const?HDM_GETITEMCOUNT?=?(HDM_FIRST?+?0)
128?????Private?Const?HDM_ORDERTOINDEX?=?(HDM_FIRST?+?15)
129?????Private?Const?PROCESS_QUERY_INFORMATION?=?1024
130?????Private?Const?PROCESS_VM_OPERATION?=?&H8
131?????Private?Const?PROCESS_VM_READ?=?&H10
132?????Private?Const?PROCESS_VM_WRITE?=?&H20
133?????Private?Const?PROCESS_ALL_ACCESS?As?Long?=?&H1F0FFF
134?????Private?Const?STANDARD_RIGHTS_REQUIRED?=?&HF0000
135?????Private?Const?MAX_LVMSTRING?As?Integer?=?255?'可根椐讀取數據長度設置適當的數值
136?????Private?Const?MEM_COMMIT?=?&H1000
137?????Private?Const?MEM_RELEASE?=?&H8000
138?????Private?Const?PAGE_READWRITE?=?&H4
139?????Private?Const?LVIF_TEXT?As?Integer?=?&H1
140?????'API?declarations
141?????Private?Declare?Function?CloseHandle?Lib?"kernel32"?(ByVal?hObject?As?Integer)?As?Integer
142?????Private?Declare?Function?ReadProcessMemory?Lib?"kernel32"?(ByVal?hProcess?As?Integer,?ByVal?lpBaseAddress?As?Integer,?ByRef?lpBuffer?As?Byte,?ByVal?nSize?As?Integer,?ByVal?lpNumberOfBytesWritten?As?Integer)?As?Integer
143?????Private?Declare?Function?VirtualFreeEx?Lib?"kernel32"?(ByVal?hProcess?As?Integer,?ByVal?lpAddress?As?Integer,?ByVal?dwSize?As?Integer,?ByVal?dwFreeType?As?Integer)?As?Integer
144?????Private?Declare?Function?WriteProcessMemory?Lib?"kernel32"?(ByVal?hProcess?As?Integer,?ByVal?lpBaseAddress?As?Integer,?ByRef?lpBuffer?As?LV_ITEMA,?ByVal?nSize?As?Integer,?ByVal?lpNumberOfBytesWritten?As?Integer)?As?Integer
145?????Private?Declare?Function?VirtualAllocEx?Lib?"kernel32"?(ByVal?hProcess?As?Integer,?ByVal?lpAddress?As?Integer,?ByVal?dwSize?As?Integer,?ByVal?flAllocationType?As?Integer,?ByVal?flProtect?As?Integer)?As?Integer
146?????Private?Declare?Function?OpenProcess?Lib?"kernel32"?(ByVal?dwDesiredAccess?As?Integer,?ByVal?bInheritHandle?As?Integer,?ByVal?dwProcId?As?Integer)?As?Integer
147?????Private?Declare?Function?GetWindowThreadProcessId?Lib?"user32"?(ByVal?hwnd?As?Integer,?ByRef?lpdwProcessId?As?Integer)?As?Integer
148?????Private?Declare?Function?SendMessage?Lib?"user32"?Alias?"SendMessageA"?(ByVal?hwnd?As?Integer,?ByVal?wMsg?As?Integer,?ByVal?wParam?As?Integer,?ByVal?lParam?As?Integer)?As?Integer
149?????Public?Function?GetListviewItem(ByVal?hWindow?As?Integer,?ByVal?ProcessID?As?Integer,?ByVal?pColumn?As?Integer,?ByVal?pRow?As?Integer)?As?String
150?????????Dim?Result?As?Integer
151?????????Dim?myItem?As?LV_ITEMA
152?????????Dim?pHandle?As?Integer
153?????????Dim?pStrBufferMemory?As?Integer
154?????????Dim?pMyItemMemory?As?Integer
155?????????Dim?strBuffer()?As?Byte
156?????????Dim?Index?As?Integer
157?????????Dim?tmpString?As?String
158?????????Dim?strLength?As?Integer
159?????????'******************************
160?????????'為動態數組變量重新分配存儲空間
161?????????'******************************
162?????????ReDim?strBuffer(MAX_LVMSTRING)
163?????????'*****************************************************************************************************
164?????????'打開一個現有進程的句柄,返回值Long,如執行成功,返回進程句柄;零表示失敗。會設置GetLastError
165?????????'Public?Declare?Function?OpenProcess?Lib?"kernel32"?(ByVal?dwDesiredAccess?As?Long,?ByVal?bInheritHandle?As?Long,?ByVal?dwProcId?As?Long)?As?Long
166?????????'參數?類型及說明
167?????????'dwDesiredAccess?Long,指定這個句柄要求的訪問方法。指定API32.TXT文件中以PROCESS_???開頭的一個或多個常數
168?????????'bInheritHandle?Long,如句柄能夠由子進程繼承,則為TRUE
169?????????'dwProcessId?Long,要打開那個進程的進程標識符
170?????????'*****************************************************************************************************
171?????????pHandle?=?OpenProcess(PROCESS_ALL_ACCESS,?False,?ProcessID)
172?????????'*****************************************************************************************************
173?????????'VirtualAllocEx(目標進程的句柄,0,內存區域的大小,分配類型,新分配內存的存取保護類型)?返回所分配頁面的基址
174?????????'*****************************************************************************************************
175?????????pStrBufferMemory?=?VirtualAllocEx(pHandle,?0,?MAX_LVMSTRING,?MEM_COMMIT,?PAGE_READWRITE)
176?????????'*************************************************
177?????????'初始化LV_ITEM?結構
178?????????'MyItem.iSubItem?列的索引號
179?????????'myItem.pszText?數據內容(此處是一個分配的內存地址)
180?????????'*************************************************
181?????????myItem.mask?=?LVIF_TEXT
182?????????myItem.iSubItem?=?pColumn
183?????????myItem.pszText?=?pStrBufferMemory
184?????????myItem.cchTextMax?=?MAX_LVMSTRING
185?????????'***********************************************************
186?????????'把這個結構寫入遠程進程process's?存儲量
187?????????'WriteProcessMemory(目標進程的句柄,地址,寫入的數據,字節數,0)
188?????????'***********************************************************
189?????????pMyItemMemory?=?VirtualAllocEx(pHandle,?0,?Len(myItem),?MEM_COMMIT,?PAGE_READWRITE)
190?????????Result?=?WriteProcessMemory(pHandle,?pMyItemMemory,?(myItem),?Len(myItem),?0&)
191?????????'********************************
192?????????'發送消息,得到項目信息和寫入內存
193?????????'********************************
194?????????strLength?=?SendMessage(hWindow,?LVM_GETITEMTEXT,?pRow,?pMyItemMemory)
195?????????Result?=?ReadProcessMemory(pHandle,?pStrBufferMemory,?strBuffer(0),?MAX_LVMSTRING,?0)
196?????????tmpString?=?System.Text.Encoding.Default.GetString(strBuffer).Trim
197?????????Result?=?ReadProcessMemory(pHandle,?pMyItemMemory,?myItem,?Len(myItem),?0)
198?????????'****************************
199?????????'釋放分配的內存和關閉進程句柄
200?????????'****************************
201?????????Result?=?VirtualFreeEx(pHandle,?pStrBufferMemory,?0,?MEM_RELEASE)
202?????????Result?=?VirtualFreeEx(pHandle,?pMyItemMemory,?0,?MEM_RELEASE)
203?????????Result?=?CloseHandle(pHandle)
204?????????If?Len(tmpString)?>?0?Then?GetListviewItem?=?tmpString
205?????End?Function
206?End?Module

?

?

實現轉換的過程其實就是一個按圖索驥的過程,按照VB.net豐富的運行錯誤信息提示,一步步的來完成。

?

?

轉載于:https://www.cnblogs.com/xxaxx/archive/2010/01/06/1640786.html

總結

以上是生活随笔為你收集整理的VB.net实现从ListView控件中异地获取文本内容源代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99精品福利 | 亚洲欧美日韩成人在线 | 视色网站 | 免费三级在线 | 国产一线二线三线在线观看 | 日产精品久久久一区二区 | 丰满少妇被猛烈进入高清播放 | 国产一区二区三区四区 | 免费精品无码AV片在线观看黄 | 又黄又爽的视频在线观看 | 毛片综合 | 精品不卡一区二区 | 国产亚洲欧美在线精品 | 麻豆视频在线免费观看 | 欧美日韩国产成人 | 91久久精品国产91性色tv | 色诱av手机版 | 日日夜夜影院 | 日韩一二三四区 | 性欧美精品中出 | 老司机激情影院 | juliaann精品艳妇hd | 五月婷在线观看 | 一区二区三区午夜 | 一级黄色大片在线观看 | 婷婷色伊人 | 超91在线 | 日韩黄色一级片 | 中文字幕www | 国产日韩欧美一区 | 国产又粗又长又爽 | 欧美日本韩国一区二区三区 | 超碰国产在线观看 | 亚洲综合一 | 日本一本久久 | 欧美a网 | 97超视频在线观看 | 日本午夜激情视频 | 国产伦精品一区二区三区高清版禁 | 一本视频在线 | 自拍偷拍亚洲区 | 夜夜嗨老熟女av一区二区三区 | 美女午夜影院 | 中文字幕在线精品 | 日日操日日 | 少妇无码一区二区三区免费 | 樱花草av | 91蝌蚪91九色| 欧美在线免费看 | 成年人视频在线播放 | 日韩精品高清在线 | www一起操| 婷婷丁香亚洲 | 日韩一级生活片 | 91精品中文字幕 | 乱岳| 天堂毛片| 丰满熟妇人妻中文字幕 | 天天艹天天爽 | 日本国产精品 | 超碰中文在线 | 日韩av在线一区二区 | 丰满人妻一区二区三区53 | 成人av入口 | 日韩精品免费一区二区三区 | 五月天婷婷激情 | 大又大粗又爽又黄少妇毛片 | 98超碰在线 | 亚洲桃色av | 91免费成人| 色姑娘天天操 | 在线一区观看 | 亚洲精品网站在线播放gif | 国产又黄又粗又猛又爽 | 国产美女毛片 | 欧美在线性视频 | 日韩特黄一级片 | 一区二区三区四区五区在线视频 | 精品人妻一区二区三区四区久久 | 99热精品国产 | 亚洲欧美强伦一区二区 | 亚洲色精品三区二区一区 | 婷婷久久久久久 | 黄色特级片 | 久久久久人妻精品一区二区三区 | 亚洲爽片| 午夜视频在线看 | 一区二区三区免费观看 | av久热 | 成人激情视频在线 | youjizzcom日本 | 黄色三级免费观看 | 免费网站成人 | 国产黑丝91 | 国产一级影片 | 中文亚洲av片不卡在线观看 | 亚洲美女在线播放 | av鲁丝一区二区鲁丝 | 国产精品久久欧美久久一区 |