Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

VBΪ×Ô¼ºµÄ³ÌÐòÉ趨ÏûÏ¢(¿É½ÓÊÕ´¦Àí)


VBΪ×Ô¼ºµÄ³ÌÐòÉ趨ÏûÏ¢(¿É½ÓÊÕ´¦Àí)
Posted by JiaJia 5 March,2009 (0)Comment
¡¡¡¡ÓÃAPIº¯Êý SetWindowLong Ö¸¶¨´¦ÀíÏûÏ¢µÄ´°¿Ú¹ý³ÌΪ×Ô¶¨ÒåµÄº¯Êý WindowProc£¬²¶»ñÏûÏ¢IDΪ WM_USER+1 µÄ×Ô¶¨ÒåÏûÏ¢»òϵͳÏûÏ¢¡£²¢ÇÒ£¬ÎªÁ˱£Ö¤´°¿ÚÄÜÕýÈ·µÄÏìÓ¦ÏûÏ¢£¬ÐèÒª±£´æÔ­À´Ä¬ÈϵĴ°¿Ú¹ý³Ì²¢ÔÚ×Ô¶¨Ò庯ÊýWindowProcÖе÷Óá£ÈçÏÂÀý£¬ÔÚ°´Å¥Ê¼þÖз¢ËÍ×Ô¶¨ÒåÏûÏ¢£¬WindowProc ²¶»ñÁË´°¿Ú´óС±ä»¯µÄϵͳ¶¨ÒåÏûÏ¢ºÍÓû§×Ô¶¨ÒåµÄÏûÏ¢²¢ÏÔʾÓû§×Ô¶¨ÒåµÄÏûÏ¢²ÎÊý wParam¡£
Form ²¿·Ö´úÂë
Private Sub Command1_Click()
Dim wParam As Long
Dim lParam As Long
Dim lResult As Long
¡¡wParam = 12345
¡¡lResult = SendMessage(Me.hwnd, WM_USER + 1, wParam, lParam)
End Sub
Private Sub Form_Load()
¡¡Me.Tag = Hook(Me.hwnd)
End Sub
Private Sub Form_Unload(Cancel As Integer)
¡¡Unhook Me.hwnd, Me.Tag
End Sub
Mod ²¿·Ö´úÂë
Option Explicit
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 Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public 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 Const GWL_WNDPROC = -4
Public Const GWL_USERDATA = (-21)
Public Const WM_SIZE = &H5
Public Const WM_USER = &H400
Public Function Hook(ByVal hwnd As Long) As Long
¡¡Dim pOld As Long
'Ö¸¶¨×Ô¶¨ÒåµÄ´°¿Ú¹ý³Ì
¡¡pOld = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
'±£´æÔ­À´Ä¬ÈϵĴ°¿Ú¹ý³ÌÖ¸Õë
¡¡SetWindowLong hwnd, GWL_USERDATA, pOld
¡¡Hook = pOld
End Function
Public Sub Unhook(ByVal hwnd As Long, ByVal lpWndProc As Long)
¡¡Dim temp As Long
¡¡'×¢ÊÍ£ºCease subclassing.
¡¡temp = SetWindowLong(hwnd, GWL_WNDP


Ïà¹ØÎĵµ£º

vb×Ö·û´®ÔÚÄÚ´æÖеķֲ¼£¿

¾Ý˵vb6ÖÐ,×Ö ·û´®ÒÔÒÔUNICODE·½Ê½´æ´¢£¬ËùÒÔ
Private Type UDT
lngM1 As Long
lngM2 As Long
strM3 As String * 18
strM4 As String * 8
lngM5 As Long
End Type
Private Sub Command4_Click()
Dim tmp As UDT
With tmp
.lngM1 = 1
.lngM2 = 2
' .str ......

VBÔËÐÐDOSÃüÁîÉú³ÉÎı¾Îļþ²¢´ò¿ª´¦ÀíµÄÎÊÌâ

ÎÒÓÃVBÖ´ÐÐDOSÃüÁÉú³ÉÎı¾ÎļþËæ¼´´ò¿ª
µ«ÊÇÓÉÓÚÎı¾ÎļþÉú³ÉÐèÒªÒ»¶Îʱ¼ä£¬
»¹Î´µÈÎļþÉú³ÉÍê±ÏVB¾Í´ò¿ªÁËÕâ¸öÎļþ
ÇëÎÊÈçºÎÈóÌÐòµÈ´ýDOSÃüÁîÖ´ÐÐÍê±ÏÔÙ´ò¿ªÕâ¸öÎı¾Îļþ°¡
×îºÃ»¹ÄܼÓÉÏÒ»¸öµÈ´ýµÄ½ø¶ÈÌõÏÔʾÎı¾ÎļþµÄÉú³É¹ý³Ì
´úÂëÈçÏ£º
Shell "cmd  /c dir /s /b e:\ dir.txt"
Open "dir.txt" ......

ÌÖÂÛVBÖеĽṹÌå

ÌÖÂÛVBÖеĽṹÌå[×ªÔØ]
2009Äê10ÔÂ20ÈÕ ÐÇÆÚ¶þ 11:30
VBÀïÃæµÄ½á¹¹ÌåÊÇÒ»ÖÖWORD/DWORD¶ÔÆëµÄ½á¹¹Ì壬ÕâÒ»µãÔÚ±à³ÌÖÐÓÈÆäҪעÒ⣬Èç¹ûÊÇ´¿VB±à³Ì£¬Ôò½á¹¹ÌåµÄ¸÷¸öÓòÈçºÎÅÅÁпÉÒÔ»ù±¾²»ÓùØÐÄ£¬
¶øÈç¹ûÊǵ÷ÓÃAPI»òÕßÊǵ÷ÓÃÆäËûµÄ¶¯Ì¬Á´½Ó¿â£¬ÔòºÜÈÝÒ׳öÎÊÌ⣬ԭÒò¾ÍÔÚÓÚ£ºÕâЩ¶¯Ì¬Á´½Ó¿âÊÇÓÃC/C++дµÄ£¬¶ø´ó²¿·ÖC/C++»·¾³ ......

΢ÐÍORM——ÓÃVBºÍC#±àдµÄ¶¯Ì¬ÀàÐÍORM

      ½üÀ´ORM±äµÃÔ½À´Ô½ÆÕ±é£¬Õâ¶¼¹éÓÚÒ»Öֺܾß˵·þÁ¦µÄÔ­Òò£»Ëü¿ÉÒÔʹ¿ª·¢Êý¾Ý¿âÇý¶¯µÄÓ¦ÓóÌÐò±äµÃ¸ü¿ì¡¢¸üÊ¡Á¦¡£µ«ÊÇORM¿ò¼Ü¶¼Óе㓹ÌÖ´¼º¼û”£¬ËûÃÇÆÚÍû¿ª·¢Õß×ñ´ÓÌØ¶¨µÄ¹æÔò£¬µ±¹æÔò±»´òÆÆµÄʱºò¾Í·Ç³£ÄÑÒÔʹÓá£×îͨ³£µÄ¹æÔòÖ®Ò»¾ÍÊÇ£¬´æ´¢¹ý³Ì±ØÐë×ÜÊÇ·µ»Øµ¥¶ÀµÄ½á¹û¼¯£¬ÆäÖд ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ