六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

獲得系統中運行的程序及使用的DLL文件

[摘要]在Microsoft Visual Studio中提供了一個可以查看當前運行的程序的工具Process Viewer 可以查看系統中當前運行的程序,下面我來介紹在你的程序中如何實現這種功能。 ...
     在Microsoft Visual Studio中提供了一個可以查看當前運行的程序的工具Process Viewer
可以查看系統中當前運行的程序,下面我來介紹在你的程序中如何實現這種功能。
    Windows提供了一系列的API函數可以建立當前的程序、模塊、線程的“快照”(SnapShot)
利用這些“快照”函數就可以獲得當前的程序、模塊等的信息。
    下面實現的步驟:

    1、在Form1中加入一個CommandButton控件、兩個ListBox控件
    2、在Form1中加入如下代碼:

Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" _
        (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32" _
        (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" _
        (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function Module32First Lib "kernel32" _
        (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As Long
Private Declare Function Module32Next Lib "kernel32" _
        (ByVal hSnapshot As Long, lppe As MODULEENTRY32) As Long

Private Declare Function CloseHandle Lib "kernel32" (ByVal _
        hObject As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias _
        "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As _
        Long, ByVal wParam As Long, lParam As Any) As Long

Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * 1024
End Type

Private Type MODULEENTRY32
    dwSize As Long
    th32ModuleID As Long
    th32ProcessID As Long
    GlblcntUsage As Long
    ProccntUsage As Long
    modBaseAddr As Byte
    modBaseSize As Long
    hModule As Long
    szModule As String * 256
    szExePath As String * 1024
End Type

Const LB_SETHORIZONTALEXTENT = &H194
Const TH32CS_SNAPHEAPLIST = &H1
Const TH32CS_SNAPPROCESS = &H2
Const TH32CS_SNAPTHREAD = &H4
Const TH32CS_SNAPMODULE = &H8
Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS _
                        Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
Const TH32CS_INHERIT = &H80000000

Dim MyEntry(100) As PROCESSENTRY32

Private Sub Command1_Click()
    Dim my As PROCESSENTRY32
    Dim l As Long
   
    List1.Clear
    l = SendMessage(List1.hwnd, &H194, 640, 0)
    '建立當前程序快照
    l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
    If l Then
        my.dwSize = 1060
        If (Process32First(l, my)) Then '遍歷第一個程序
            '遍歷所有程序直到返回值為False
            Do
                List1.AddItem (Trim$(my.szExeFile))
                MyEntry(List1.ListCount - 1) = my
            Loop Until (Process32Next(l, my) < 1)
End If
'關閉快照句柄
CloseHandle l
End If
End Sub

Private Sub Form_Load()
Command1_Click
End Sub

Private Sub List1_Click()
Dim l As Long
Dim mm As MODULEENTRY32
Dim lm As Long
Dim astr As String

If MyEntry(List1.ListIndex).th32ProcessID <> 0 Then
        l = SendMessage(List2.hwnd, &H194, 640, 0)
        List2.Clear
         
        '根據程序快照句柄建立程序的模塊句柄
        lm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, _
            MyEntry(List1.ListIndex).th32ProcessID)
        If lm > 0 Then
            mm.dwSize = Len(mm)
            '獲得第一個模塊
            If Module32First(lm, mm) Then
                '遍歷所有模塊知道返回值為False
                Do
                    If MyEntry(List1.ListIndex).th32ProcessID = _
                        mm.th32ProcessID Then
                         
                        astr = Left$(mm.szModule, (InStr(1, _
                            mm.szModule, Chr(0)) - 1))
                         
                        List2.AddItem astr
                    End If
                Loop Until (Module32Next(lm, mm) < 1)
End If
CloseHandle (lm)
End If
End If
End Sub

運行程序,List1中就列出當前運行的所有的程序的名稱及路徑,點擊其中任一個列表,
在List2中就會列出這個程序所使用的DLL的文件名。按下Command1重新獲得系統中運行的程序。
上面只是通過簡單的程序介紹了“快照”的建立和使用,只要稍加改造,就可以獲得諸如
程序的線程數、模塊尺寸、模塊在內存的基地址等信息。
以上程序在Windows95、VB5.0下運行通過。 


主站蜘蛛池模板: 亚洲成a人v欧美综合天堂下载 | 日本亚洲天堂网 | 亚洲日本在线免费观看 | 欧美专区在线观看 | 视频一区二区不卡 | 天天做天天爱夜夜爽毛片毛片 | 午夜黄色 | 亚洲a在线视频 | 欧美专区在线 | 青青青视频免费 | 青草视频青年娱乐 | 亚洲精品青青草原avav久久qv | 五月天丁香婷婷综合 | 色视频在线观看网站 | 四虎成人免费网址在线 | 欧美亚洲另类久久综合 | 天美传媒一区二区三区 | 欧美性色黄大片四虎影视 | 色婷婷一区二区三区四区成人 | 日本大片久久久高清免费看 | 羞羞色院91网站 | 在线观看国产一区亚洲bd | 人人婷婷色综合五月第四人色阁 | 日韩国产成人精品视频 | 色台湾色综合网站 | 日韩精品欧美一区二区三区 | 天天插天天爱 | 亚洲不卡在线播放 | 日本a级片在线播放 | 亚洲a在线播放 | 亚洲男人的天堂在线播放 | 青青青国产在线手机免费观看 | 小说区图片区综合久久88 | 亚洲tv精品一区二区三区 | 日韩一区国产二区欧美三 | 又粗又硬又大又爽免费视频播放 | 欧美中文娱乐网 | 四虎永久在线精品 | 色花堂国产精品第二页 | 一区小说二区另类小说三区图 | 日本久久免费大片 |