`
文章列表
Private Const WTS_CURRENT_SERVER_HANDLE = 0&Private Declare Function WTSEnumerateProcesses _Lib "wtsapi32.dll" Alias "WTSEnumerateProcessesA" _(ByVal hServer As Long, ByVal Reserved As Long, _ByVal Version As Long, ByRef ppProcessInfo As Long, _ByRef pCount As Long) As Long ...
  用API函数 SetWindowLong 指定处理消息的窗口过程为自定义的函数 WindowProc,捕获消息ID为 WM_USER+1 的自定义消息或系统消息。并且,为了保证窗口能正确的响应消息,需要保存原来默认的窗口过程并在自定义函数WindowProc中调用。如下例,在按钮事件中发送自定义消息,WindowProc 捕获了窗口大小变化的系统定义消息和用户自定义的消息并显示用户自定义的消息参数 wParam。Form 部分代码 Private Sub Command1_Click()Dim wParam As LongDim lParam As LongDim lResult A ...
一、 前言    数据类型转换在编程中经常用到,VB6提供了一整套类型转换的函数。但是,在进行类型转换时,有时候仅仅依靠VB提供的函数是不能达到自己的目的的。因此,需要考虑用其他的方法来完成数据类型转换。本文仅 ...
用到的API声明:Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)Long2Byte Dim TempLng As LongDim TempBytes(0 To 3) As ByteTempLng = 2000#If 方法1 ThenCopyMemory TempBytes(0), TempLng, 4#ElseIf 方法2 ThenTempByte ...

子类化 - zAddressOf

    博客分类:
  • vb
'Return the address of the specified ordinal method on the oCallback object, 1 = last private method, 2 = second last private method, etcPrivate Function zAddressOf(ByVal oCallback As Object, ByVal nOrdinal As Long) As Long' Note: used both in subclassing and hooking routinesDim bSub As Byte 'Value ...
Private Sub ZipOrRar()'将C盘的test文件夹压缩为test.rar文件Shell App.Path + "\WinRar.exe M C:\test.rar C:\test"End SubPrivate Sub UnZipOrRar()'将test.rar解压缩在C盘下Shell App.Path + "\WinRar.exe X C:\test.rar C:\"End Sub
  前两天看了Delphi版面精华区中的《进程死亡的自动复活》一文,觉得作者的思路很不错,利用api来监视进程的活动,当被销毁时就自动再创建进程。仔细推敲之后,发觉其实用vb也是可以做到的。于是花了半天的时间写了以下的程序,实现了使用WaitForSingleObject API来监视被创建的进程的活动,一旦返回除 time out 之外的消息就自动创建新的进程。以下为其实现代码。在 win2000 server + vb 6.0下通过。 Option ExplicitPrivate RunFile$Private Const NORMAL_PRIORITY_CLASS = &H ...
因为利用了汇编代码,速度特别快,有空可以测试测试.新建一个EXE工程,加入两个TEXTBOX控件,默认名称,一个BUTTON控件即可. Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _ByVal hwnd As Long, _ByVal Msg As Long, _ByVal wParam As Long, _ByVal lParam As Long) As LongPrivate ...
Option Explicit'ProcessHandle 为输出 其余为输入Private Declare Function NtOpenProcess Lib "ntdll.dll" ( _ByRef ProcessHandle As Long, _ByVal AccessMask As Long, _ByRef ObjectAttributes As OBJECT_ATTRIBUTES, _ByRef ClientId As CLIENT_ID) As LongPrivate Type OBJECT_ATTRIBUTESLength As LongRootDire ...
窗体代码: Option ExplicitPrivate Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As LongPrivate Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, ByVal uFlags As Long) ...
窗体代码: Private Sub Command1_Click()Dim hInst As LongDim Thread As Long'Set up the CBT hookhInst = GetWindowLong(Me.hWnd, GWL_HINSTANCE)Thread = GetCurrentThreadId()hHook = SetWindowsHookEx(WH_CBT, AddressOf WinProc1, hInst, _Thread)'Display the message boxMsgBox "This message box has been pos ...
三个SDK函数 WinExec,ShellExecute,CreateProcess 实现调用其他程序的方法三个SDK函数: WinExec, ShellExecute,CreateProcess 可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。WinExec 两个参数,前一个指定路径,后一个指定显示方式。ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。CreateProc ...
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg。它在Windows单元中是这样声明的:typeTMsg = packed recordhwnd: HWND; //窗口句柄message: UINT; //消息常量标识符wParam: WPARAM ; // 32位消息的特定附加信息lParam: LPARAM ...
VB可以用Declare声明来调用标准DLL的外部函数,但是其局限性也很明显:利用Declare我们只能载入在设计时通过Lib和Alias字句指定的函数指针!而不能在运行时指定由我们自己动态载入的函数指针),不能用Declare语句来调用任意的函数指针。当我们想动态调用外部函数的时候,就必须考虑采用其他的辅助方法,来完成这个任务了。 在文章《VB真是想不到系列之三:VB指针葵花宝典之函数指针》、《Matthew Curland的VB函数指针调用》、《利用动态创建自动化接口实现VB的函数指针调用》等文献中对此问题都进行了一定程度上的讨论,但是头绪都很繁琐,对我这样的菜鸟还有点深奥,在资料搜索过程中 ...
'枚举Dim libName As StringPublic Enum DLL_Enumkernel32_DLL = 0 'Windows 32核心API库user32_DLL = 1 '用户接口库gdi32_DLL = 2 '图形设备接口API库winmm_DLL = 3 'Windows多媒体APIShell32_DLL = 4 '32位Shell API库winspool_DRV = 5 '后台打印APIadvapi32_DLL = 6 '高级安全与注册API库comdlg32_DLL = 7 '通用对话框APIversion_DLL = 8 '版本库netapi32_DLL = 9 ...
Global site tag (gtag.js) - Google Analytics