MainFrm.frm

VB鼠标钩子与屏幕取色
VERSION 5.00 Begin VB.Form MainFrm Caption = "Form1" ClientHeight = 7800 ClientLeft = 16620 ClientTop = 1350 ClientWidth = 1965 LinkTopic = "Form1" MaxButton = 0 'False ScaleHeight = 7800 ScaleWidth = 1965 Begin VB.Timer Timer1 Interval = 300 Left = 0 Top = 0 End Begin VB.CommandButton Command1 Caption = "Command1" Height = 495 Left = 360 TabIndex = 0 Top = 4440 Width = 1215 End Begin VB.Label Lab_XY Height = 855 Left = 120 TabIndex = 1 Top = 240 Width = 1695 End End Attribute VB_Name = "MainFrm" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit '为什么只能放到这里? Public WithEvents VBHook As cSystemHook Attribute VBHook.VB_VarHelpID = -1 Private Sub Command1_Click() Call INI_Write("POSITON", "X", Me.Left) Call INI_Write("POSITON", "Y", Me.Top) Call INI_Write("POSITON", "HEIGHT", Me.Height) Call INI_Write("POSITON", "WIDTH", Me.Width) End Sub Private Sub Form_Load() Call Main_Init '应该放这里的! '设置全局钩子,引用vb_hook.dll文件 Set VBHook = New cSystemHook VBHook.SetHook End Sub Private Sub Form_Paint() Call AlwaysOnTop(Me.hWnd, True) '修正最顶层问题! End Sub '存在问题! Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) '如 果 程 序 不 同 意 关 机 ,Cancel 设 定 为 True 'Cancel = True Select Case UnloadMode Case 0: '窗体右上角的X号关闭窗体 Case 1: '程序代码关闭窗体,例如Unload Me Case 2: '关闭Windows关闭窗体 Case 3: '在任务管理器中关闭窗体 Case 4: 'MDI窗体被卸载时关闭窗体 End Select Call Shell_NotifyIcon(NIM_DELETE, nfIconData) '释放全局钩子 VBHook.RemoveHook Set VBHook = Nothing End End Sub Private Sub Timer1_Timer() 'Timer的Interval值设为300吧 Call QQHiden(Me) End Sub '鼠标钩子 Private Sub VBHook_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) '获得RGB,分解RGB颜色值 '颜色分解有问题!和系统颜色有点差 Dim R As Integer, G As Integer, B As Integer, Color As Long Color = GetColorFromPoint(x, y) R = (Color Mod 256) B = (Int(Color / 65536)) G = ((Color - (B * 65536) - R) / 256) Lab_XY.Caption = "X坐标:" & x & vbCrLf & "Y坐标:" & y & vbCrLf & "R:" & R & " G:" & G & " B:" & B Lab_XY.BackColor = RGB(R, G, B) End Sub

Private Sub Command1_Click()
Call INI_Write("POSITON", "X", Me.Left)
Call INI_Write("POSITON", "Y", Me.Top)
Call INI_Write("POSITON", "HEIGHT", Me.Height)
Call INI_Write("POSITON", "WIDTH", Me.Width)

End Sub


Private Sub Form_Load()
Call Main_Init '应该放这里的!
'设置全局钩子,引用vb_hook.dll文件
Set VBHook = New cSystemHook
VBHook.SetHook
End Sub

Private Sub Form_Paint()
Call AlwaysOnTop(Me.hWnd, True) '修正最顶层问题!
End Sub

'存在问题!
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'如 果 程 序 不 同 意 关 机 ,Cancel 设 定 为 True
'Cancel = True

Select Case UnloadMode
Case 0:
'窗体右上角的X号关闭窗体
Case 1:
'程序代码关闭窗体,例如Unload Me
Case 2:
'关闭Windows关闭窗体
Case 3:
'在任务管理器中关闭窗体
Case 4:
'MDI窗体被卸载时关闭窗体
End Select
Call Shell_NotifyIcon(NIM_DELETE, nfIconData)

'释放全局钩子
VBHook.RemoveHook
Set VBHook = Nothing
End
End Sub

Private Sub Timer1_Timer() 'Timer的Interval值设为300吧
Call QQHiden(Me)
End Sub

'鼠标钩子
Private Sub VBHook_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
'获得RGB,分解RGB颜色值
'颜色分解有问题!和系统颜色有点差
Dim R As Integer, G As Integer, B As Integer, Color As Long
Color = GetColorFromPoint(x, y)
R = (Color Mod 256)
B = (Int(Color / 65536))
G = ((Color - (B * 65536) - R) / 256)
Lab_XY.Caption = "X坐标:" & x & vbCrLf & "Y坐标:" & y & vbCrLf & "R:" & R & " G:" & G & " B:" & B
Lab_XY.BackColor = RGB(R, G, B)
End Sub

版权声明:本文为博主原创文章,未经博主允许不得转载。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值