马云剑(myjian)在线状态 9小时前

社区头衔:
社区专家 (专家排行榜
社区生日:
2004-04-17 |生日:1983-03-12
所在城市:
中国 四川 南充市
技术专长:
MASM,VB6
开发工具:
Microsoft Visual C++ 6.0,RADASM,VB6,VS2008
兴趣爱好:
音乐,足球
个人简介:
学习WHY而不是学习HOW.
这个就是嗷嗷叫的老马.
就是我.
所在行业:
所在公司:
 
(仅好友可见)
联系方式:
(仅好友可见)
 
编辑我的资料
人气:
[人气排行榜] 共 2512 人访问 / 查看详细
专家分:
[专家分排行榜] 共 15623 分 / 查看详细
可用分:
[可用分排行榜] 共 1934 分
个人动态
今天
昨天
博客
查看全部

共5 篇文章

留言
查看全部

共 13 条留言

yuiki 2008-07-14

请问, 你会用Vb6 编排课表么?有相应的数据库<br/> 如果可以, 联系我, 谢谢<br/>重谢

马云剑 回复于 2008-07-14

抱歉,数据库我不会

wang111wen 2008-07-09

你好,有关于"激光雕刻机控制系统开发"的源代码问题想向你请教,请加我QQ:150021555,谢谢

汪春生 2008-06-30

我终于找到老马了 关于filedisk 虚拟光驱 请您指点下 交流<br />QQ:29722545

马云剑 回复于 2008-06-30

那个是文件系统过滤驱动,我还没学~~~

付海超 2008-06-18

在想一个问题<br/>老马和马王堆什么关系?

freemxl 2007-12-17

你好,有个VB网络编程的问题请教一下:本人用vb编写了一个多个客户机向服务器发送文件的程序,使用winsock控件。程序运行时是全自动的,无人值守。在运行中winsock接收时会出现: <br/>1.客户机执行一次sockClient.SendData方法,而服务器端接收时触发sockServer_dataarrival事件两次(可能更多) <br/>2.客户机执行两次sockClient.SendData方法,服务器端接收时只触发一次sockServer_dataarrival事件 这样服务器端接收的数据与预期的不同,导致程序处理数据时出现错误。<br/>请问应该怎么解决 thx 

马云剑 回复于 2007-12-22

收到没?我好象发了两次了?

lr787262683 2007-11-15

大哥你 好厉害啊,我好佩服你啊.一定的向你好好 学习啊!我是你帮我解决vb的林蓉.呵呵 是否有印象呢???

马云剑 回复于 2007-11-16

你好~~~我知道你,在我群里嘛:)

Jackie Ji 2007-10-31

你那论坛什么网址阿?有空去光顾一下! :)

马云剑 回复于 2007-11-02

我的地址是:  <br/><br/>http://www.m5home.com/<br/><br/>不过人大时被和谐了,还得过段时间才能开放......-_-b<br/><br/>再等等吧.......不好意思了

wlynever 2007-10-30

我的E-mail:     wlynever@163.com 

马云剑 回复于 2007-11-02

邮件已发,请查收

wlynever 2007-10-27

老马~~~ 我之前在你的  紫水晶论坛上看过一篇你写的 关于网页星号密码查看器  的文章     现在还有么   你的论坛怎么进不去了啊~~

马云剑 回复于 2007-10-30

有是有,只是网站被人大关闭了,还得等一段时间才能开通..........

wlynever 2007-10-27

老马~~~` 我在网上看到你说WH_KEYBOARD_LL 钩子不用DLL来完成,但是如果做成DLL  是不是这样啊 <br/> 一、新建一个ActiveX Dll工程,名字栏里取名为SysHook <br/>二、添加一个模块,取名为mHook,添加代码如下: <br/><br/>Option Explicit<br/><br/>Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long<br/>Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long<br/>Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long<br/>Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer<br/>Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)<br/><br/>Private Type PKBDLLHOOKSTRUCT<br/>    VKCode As Long<br/>    scanCode As Long<br/>    flags As Long<br/>    time As Long<br/>    dwExtraInfo As Long<br/>End Type<br/><br/>Private Const WH_KEYBOARD_LL = 13<br/>Private Const HC_ACTION = 0<br/>Private Const WM_KEYDOWN = &H100<br/>Private Const VK_CONTROL = &H11<br/>Private Const VK_SHIFT = &H10<br/>Private Const VK_MULTIPLY = &H6A<br/>Private Const VK_ADD = &H6B<br/>Private Const VK_SEPARATOR = &H6C<br/>Private Const VK_SUBTRACT = &H6D<br/>Private Const VK_DECIMAL = &H6E<br/>Private Const VK_DIVIDE = &H6F<br/>Private Const VK_PRIOR = &H21<br/>Private Const VK_NEXT = &H22<br/>Private Const VK_END = &H23<br/>Private Const VK_HOME = &H24<br/>Private Const VK_LEFT = &H25<br/>Private Const VK_UP = &H26<br/>Private Const VK_DOWN = &H28<br/>Private Const VK_RIGHT = &H27<br/>Private Const VK_INSERT = &H2D<br/>Private Const VK_DELETE = &H2E<br/>Private Const VK_F1 = &H70<br/>Private Const VK_F12 = &H7B<br/>Private Const VK_NUMLOCK = &H90<br/>Private Const VK_NUMPAD0 = &H60<br/>Private Const VK_NUMPAD9 = &H69<br/>Private Const VK_RETURN = &HD<br/>Private Const VK_SPACE = &H20<br/>Private Const VK_TAB = &H9<br/>Private Const VK_ESCAPE = &H1B<br/>Private Const VK_BACK = &H8<br/><br/>Private PrevHook As Long<br/><br/>Public Function LowLevelKeyboardProc(ByVal ncode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long<br/>    Dim p As PKBDLLHOOKSTRUCT<br/>    Dim strKey As String<br/>    <br/>    If ncode = HC_ACTION Then<br/>        Select Case wParam<br/>            Case WM_KEYDOWN<br/>                CopyMemory p, ByVal lParam, Len(p)<br/>                <br/>                If p.VKCode > 0 And p.VKCode < &H92 Then<br/>                    If (GetKeyState(VK_CONTROL) And &H8000) <> 0 Then<br/>                        strKey = "{Ctrl}+"<br/>                    End If<br/>                    <br/>                    If (GetKeyState(VK_SHIFT) And &H8000) <> 0 Then<br/>                        strKey = strKey & "{Shift}+"<br/>                    End If<br/>                    <br/>                    Select Case p.VKCode<br/>                    Case VK_MULTIPLY<br/>                        strKey = strKey & "{Multiply}"<br/>                    Case VK_ADD<br/>                        strKey = strKey & "{Add}"<br/>                    Case VK_SEPARATOR<br/>                        strKey = strKey & "{Separator}"<br/>                    Case VK_SUBTRACT<br/>                        strKey = strKey & "{Subtract}"<br/>                    Case VK_DECIMAL<br/>                        strKey = strKey & "{Decimal}"<br/>                    Case VK_DIVIDE<br/>                        strKey = strKey & "{Divide}"<br/>                    Case VK_PRIOR<br/>                        strKey = strKey & "{Prior}"<br/>                    Case VK_NEXT<br/>                        strKey = strKey & "{Nexe}"<br/>                    Case VK_END<br/>                        strKey = strKey & "{End}"<br/>                    Case VK_HOME<br/>                        strKey = strKey & "{Home}"<br/>                    Case VK_LEFT<br/>                        strKey = strKey & "{Left}"<br/>                    Case VK_UP<br/>                        strKey = strKey & "{Up}"<br/>                    Case VK_DOWN<br/>                        strKey = strKey & "{Down}"<br/>                    Case VK_RIGHT<br/>                        strKey = strKey & "{Right}"<br/>                    Case VK_INSERT<br/>                        strKey = strKey & "{Insert}"<br/>                    Case VK_DELETE<br/>                        strKey = strKey & "{Delete}"<br/>                    Case VK_BACK<br/>                        strKey = strKey & "{Back}"<br/>                    Case VK_F1 To VK_F12<br/>                        strKey = strKey & "F" & CStr(p.VKCode - &H70)<br/>                    Case VK_NUMLOCK<br/>                        strKey = strKey & "{NumLock}"<br/>                    Case VK_NUMPAD0 To VK_NUMPAD9<br/>                        strKey = strKey & CStr(p.VKCode - &H60)<br/>                    Case VK_RETURN<br/>                        strKey = strKey & "{Return}"<br/>                    Case VK_SPACE<br/>                        strKey = strKey & "{Space}"<br/>                    Case VK_TAB<br/>                        strKey = strKey & "{Tab}"<br/>                    Case VK_ESCAPE<br/>                        strKey = strKey & "{Escape}"<br/>                    Case &H30 To &H39, &H41 To &H5A<br/>                        strKey = strKey & Chr(p.VKCode)<br/>                    Case Else<br/>                        'do nothing<br/>                    End Select<br/>                 End If<br/>                <br/>            Case Else<br/>                'do nothing<br/>                <br/>        End Select<br/>    End If<br/>    <br/>    CallNextHookEx WH_KEYBOARD_LL, ncode, wParam, lParam<br/>End Function<br/>把工程自动建立的Class1类模块改名为cSystemHook,添加代码如下:<br/>Public Sub Hook()<br/>    PrevHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0)<br/>'    Debug.Print PrevHook<br/>End Sub<br/><br/>Public Sub ReleaseHook()<br/>    Open "f:\stud.txt" For Output As #1 <br/>Write #1,strKey<br/>Close #1 <br/><br/>    Call UnhookWindowsHookEx(PrevHook)<br/>End Sub<br/><br/><br/><br/>'***************************<br/>编译生成DLL,做一个普通的工程,添加引用SysHook'<br/>Option Explicit <br/>Dim  SS As cSystemHook <br/>Private Sub Form_Load()<br/>    Set SS= New cSystemHook <br/>    SS.HOOK<br/>End Sub<br/><br/>Private Sub Form_Unload(Cancel As Integer)<br/>    SS.ReleaseHook<br/>End Sub

马云剑 回复于 2007-10-30

不需要用DLL的<br/>在2000及以上系统里直接支持鼠标键盘的全局HOOK