请教 当按下抓屏键时抓取活动画面,同时调出打印机画面,然后打印,该如何实现?多谢了
请教 当按下抓屏键时抓取活动画面,同时调出打印机画面,然后打印,该如何实现?多谢了 问题点数:50、回复次数:3Top
1 楼hrabeyond(新新人类)回复于 2006-08-01 08:48:14 得分 0
你的意思是按下抓屏键后调用你的程序,你的程序是个打印程序
还是你的程序已经运行,接受抓屏键然后调用你程序内部的打印功能??Top
2 楼kaoruakira()回复于 2006-08-02 05:53:41 得分 0
是程序已经运行,接受抓屏键然后调用程序内部的打印功能
多谢了Top
3 楼aspower_(敬个礼 握个手 大家都素好朋友!)回复于 2006-08-02 13:36:56 得分 50
Option Explicit
Declare Function SetWindowsHookExA Lib "user32" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Public hNextHookProc As Long
Const HC_ACTION = 0
Const WH_KEYBOARD = 2
Const WH_KEYBOARD_LL = 13
Private Type KBDLLHOOKSTRUCT
vkCode As Long
scanCode As Long
flags As Long
time As Long
dwExtraInfo As Long
End Type
Public Sub UnHookKBD()
If hNextHookProc <> 0 Then
UnhookWindowsHookEx hNextHookProc
hNextHookProc = 0
End If
End Sub
Public Function EnableKBDHook() As Boolean
If hNextHookProc = 0 Then
'安装的是Low Level的键盘钩子
hNextHookProc = SetWindowsHookExA(WH_KEYBOARD_LL, AddressOf MyKBHFunc, App.hInstance, 0)
End If
EnableKBDHook = hNextHookProc <> 0
End Function
Public Function MyKBHFunc(ByVal iCode As Long, ByVal wParam As Long, lParam As KBDLLHOOKSTRUCT) As Long
MyKBHFunc = 0 '讯息要处理
If iCode < 0 Then
MyKBHFunc = CallNextHookEx(hNextHookProc, iCode, wParam, lParam)
Exit Function
End If
If lParam.vkCode = vbKeySnapshot Then '有没有按到PrintScreen键
Call CallNextHookEx(hNextHookProc, iCode, wParam, lParam)
form1.print'这里是你的代码 调用程序内部的打印功能
Else
Call CallNextHookEx(hNextHookProc, iCode, wParam, lParam)
End If
'Debug.Print lParam.vkCode
End Function
'以下在Form
Private Sub Form_Load()
Call EnableKBDHook
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call UnHookKBD
End SubTop




