VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • VB.NET自动操作其他程序(2)--声明DLL相关函数

3、声明DLL相关函数
Declare Auto Function SetForegroundWindow Lib "USER32.DLL" (ByVal hWnd As IntPtr) As Boolean 
    Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As IntegerAs Integer 
    Private Declare Function GetDlgItem Lib "user32" (ByVal hwnd As IntegerByVal nIDDlgItem As IntegerAs Integer 
    'GetCaretPos 

    Declare Auto Function GetMenu Lib "USER32.DLL" (ByVal hWnd As IntegerAs Integer 

    Declare Auto Function GetSubMenu Lib "USER32.DLL" (ByVal hMenu As IntegerByVal nPos As IntegerAs Integer 
    Declare Auto Function GetMenuItemCount Lib "USER32.DLL" (ByVal hMenu As IntegerAs Integer 
    Declare Auto Function GetMenuItemID Lib "USER32.DLL" (ByVal hMenu As IntegerByVal nPos As IntegerAs Integer 
    Declare Auto Function RemoveMenu Lib "USER32.DLL" (ByVal hMenu As IntegerByVal nPos As IntegerByVal uFlag As IntegerAs Integer    'uFlag is MF_BYCOMMAND or MF_BYPOSITION 
    Declare Auto Function DeleteMenu Lib "USER32.DLL" (ByVal hMenu As IntegerByVal nPos As IntegerByVal uFlag As IntegerAs Integer    'uFlag is MF_BYCOMMAND or MF_BYPOSITION 
    Declare Auto Function GetMenuState Lib "USER32.DLL" (ByVal hMenu As IntegerByVal nPos As IntegerByVal uFlag As IntegerAs Integer    'uFlag is MF_BYCOMMAND or MF_BYPOSITION 

    Declare Auto Function GetMenuString Lib "USER32.DLL" (ByVal hMenu As IntegerByVal uIDItem As IntegerByVal lpString As StringByValnMaxCount As IntegerByVal uFlag As IntegerAs Integer    'uFlag is MF_BYCOMMAND or MF_BYPOSITION 

    Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As IntegerByVal lpString As StringByVal cch AsInt32) As Integer 
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As IntegerByVal wMsg As Integer, _ 
                                                                           ByVal wParam As IntegerByVal lParam As StringAs Integer 



    '查找窗口 
    '窗口类名 
    <DllImport("user32.dll")> _ 
    Private Shared Function FindWindow(ByVal strClassName As StringByVal strWindowName As StringAs Integer 
        '窗口标题 
    End Function 

    '在窗口列表中寻找与指定条件相符的第一个子窗口 
    ' handle to parent window 
    ' handle to child window 
    '窗口类名           
    <DllImport("user32.dll")> _ 
    Private Shared Function FindWindowEx(ByVal hwndParent As IntegerByVal hwndChildAfter As IntegerByVal className As StringByValwindowName As StringAs Integer 
        ' 窗口标题 
    End Function 
    <DllImport("user32.DLL")> _ 
    Private Shared Function SendMessage(ByVal hWnd As IntegerByVal Msg As UIntegerByVal wParam As IntegerByVal lParam As IntegerAsInteger 
    End Function 
    '找出某个窗口的创建者(线程或进程),返回创建者的标志符 
    <DllImport("user32.dll")> _ 
    Private Shared Function GetWindowThreadProcessId(ByVal hwnd As IntegerByRef processId As IntegerAs Integer 
    End Function 
    '打开一个已存在的进程对象,并返回进程的句柄 
    <DllImport("kernel32.dll")> _ 
    Private Shared Function OpenProcess(ByVal dwDesiredAccess As UIntegerByVal bInheritHandle As BooleanByVal processId As IntegerAsInteger 
    End Function 
    '为指定的进程分配内存地址:成功则返回分配内存的首地址 
    <DllImport("kernel32.dll")> _ 
    Private Shared Function VirtualAllocEx(ByVal hProcess As IntegerByVal lpAddress As IntPtr, ByVal dwSize As UIntegerByVal flAllocationTypeAs UIntegerByVal flProtect As UIntegerAs Integer 
    End Function 
    '从指定内存中读取字节集数据 
    '被读取者的进程句柄 
    '开始读取的内存地址 
    '数据存储变量 
    '要写入多少字节 
    <DllImport("kernel32.dll")> _ 
    Private Shared Function ReadProcessMemory(ByVal hProcess As IntegerByVal lpBaseAddress As IntegerByVal lpBuffer As IntPtr, ByVal nSizeAs IntegerByRef vNumberOfBytesRead As UIntegerAs Boolean 
        '读取长度 
    End Function 
    '将数据写入内存中 
    '由OpenProcess返回的进程句柄 
    '要写的内存首地址,再写入之前,此函数将先检查目标地址是否可用,并能容纳待写入的数据 
    '指向要写的数据的指针 
    '要写入的字节数 
    <DllImport("kernel32.dll")> _ 
    Private Shared Function WriteProcessMemory(ByVal hProcess As IntegerByVal lpBaseAddress As IntegerByVal lpBuffer As IntPtr, ByVal nSizeAs IntegerByRef vNumberOfBytesRead As UIntegerAs Boolean 
    End Function 
    <DllImport("kernel32.dll")> _ 
    Private Shared Function CloseHandle(ByVal handle As IntegerAs Boolean 
    End Function 
    '在其它进程中释放申请的虚拟内存空间 
    '目标进程的句柄,该句柄必须拥有PROCESS_VM_OPERATION的权限 
    '指向要释放的虚拟内存空间首地址的指针 
    <DllImport("kernel32.dll")> _ 
    Private Shared Function VirtualFreeEx(ByVal hProcess As IntegerByVal lpAddress As IntegerByVal dwSize As UIntegerByVal dwFreeType AsUIntegerAs Boolean 
        '释放类型 
    End Function 

    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As IntegerByVal lpString As StringByVal cch AsInt32) As Integer 

    ''' <summary> 
    ''' LVITEM结构体,是列表视图控件的一个重要的数据结构 
    ''' 占空间:(int)x7=28个byte 
    ''' </summary> 
    Private Structure LVITEM 
        '结构体 
        Public mask As Integer 
        '说明


此结构中哪些成员是有效的
 
        Public iItem As Integer 
        '项目的索引值(可以视为行号)从开始 
        Public iSubItem As Integer 
        '子项的索引值(可以视为列号)从开始 
        Public state As Integer 
        '子项的状态 
        Public stateMask As Integer 
        '状态有效的屏蔽位 
        Public pszText As IntPtr 
        '主项或子项的名称 
        Public cchTextMax As Integer 
        'pszText所指向的缓冲区大小 
    End Structure 
    Private Structure HDITEM 
        Dim mask As Integer 
        Dim cxy As Integer 
        Dim pszText As IntPtr 
        Dim hbm As Integer 
        Dim cchTextMax As Integer 
        Dim fmt As Integer 
        Dim lParam As Integer 
        Dim iImage As Integer 
        Dim iOrder As Integer 
    End Structure 

出处:https://www.cnblogs.com/lefour/p/5464106.html

相关教程