感悟网 导航

【vb】只要程序窗口为活动窗口就截获剪贴板数据

作者&投稿:蒸委 (若有异议请与网页底部的电邮联系)
VB将剪贴板内容发送到指定窗口问题~

用API
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

按Alt+Print Screen键 ,笔记本记得加上Fn。

参考:http://www.graphics.net.cn/bbs/vb/0440/179.asp
http://blog.csdn.net/xinbin1122/category/90621.aspx
=================================================
第13楼 回复人:yefanqiu 2003-07-09 08:13:32 返回顶部

'窗体子类化(声明部分,你自己声明)
'设置
Public Sub SetSubClass(lpHwnd As Long, lngX As Long, lngY As Long)
If Not m_Hook Then
m_hWnd = lpHwnd
m_PrevWndProc = SetWindowLong(lpHwnd, GWL_WNDPROC, AddressOf WindowProc)
m_Hook = True
End If
End Sub
'取消
Public Sub UnSubClass()
If m_Hook Then
Call SetWindowLong(m_hWnd, GWL_WNDPROC, m_PrevWndProc)
m_Hook = False
End If
End Sub
Private Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim mmiInfo As MINMAXINFO

If uMsg = WM_ACTIVATE Then
If (wParam = WA_ACTIVE Or wParam = WA_CLICKACTIVE) Then
'frmMain.lblTitle.ForeColor = &H246B& '窗口得到焦点时
frmMain.imgIcon.Picture = frmMain.imgICO(0).Picture
Else
'frmMain.lblTitle.ForeColor = RGB(50, 50, 50) '窗口失去焦点时
frmMain.imgIcon.Picture = frmMain.imgICO(1).Picture
End If
End If

WindowProc = CallWindowProc(m_PrevWndProc, hw, uMsg, wParam, lParam)
End Function
============================================
第二份资料:
自定义事件,比如自定义MyGotFoucs事件代替Form_GotFoucs.
How to use VB6.0's Event.
Creat a new class named Class1, it's codes like this:

Public Event MyEvent()

Public Sub RaiseTheEvent()
'some other codes here
RaiseEvent MyEvent

End Sub

Create a new form, draw a command on it named Command1, double the command to open the code.

It codes like this:

Option Explicit

Private WithEvents Myclass As class1

Private Sub Command1_Click()
Set Myclass = New class1
Call Myclass.RaiseTheEvent 'In this sub event is raised.

End Sub

Private Sub Myclass_MyEvent()'this is the sub to dill with the event.
MsgBox "class1's event occured."
End Sub

Start the application and Click the button will raise the event.

《【vb】只要程序窗口为活动窗口就截获剪贴板数据》
答:If (wParam = WA_ACTIVE Or wParam = WA_CLICKACTIVE) Then 'frmMain.lblTitle.ForeColor = &H246B& '窗口得到焦点时 frmMain.imgIcon.Picture = frmMain.imgICO(0).Picture Else 'frmMain.lblTitle.ForeColor = RGB(50, 50, 50) '窗口失去焦点时 frmMain.imgIcon.Picture = frmMain.imgI...

《vb活动窗口的问题》
答:在对象变成活动窗口的时候就会发生 Activate 事件。而当对象不再是活动窗口时,则会发生 Deactivate 事件。语法 Private Sub object_Activate()Private Sub object_Deactivate()object 代表一个对象表达式,其值为“应用于”列表中的对象。说明 对象可使用代码中的 Show 方法变成活动的。只有在对象是可见的...

《vb中如何是窗体一运行就是最大化窗口》
答:SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态 SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态 SW_SHOWMAXIMIZED 最大化窗口,并将其激活 SW_SHOWMINIMIZED 最小化窗口,并将其激活 SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口 SW_SHOWNA 用当前的大小...

《VB 怎么判断自身窗口是不是活动的?》
答:不过你可以试试换一个角度,当窗体变成活动时会触发Active事件,变成非活动(即失去焦点)时会触发LoseFocus事件,所以你可以定义一个工程级变量(即所有窗体之间都通用的一个变量,如果不会可以追问我),定义成布尔类型的,假设变量名是Form1Active,将 Form1Active = True、Form1Active = False 这两句话...

《vb读取活动窗口内存》
答:题主是否想询问“vb可以读取活动窗口内存吗”?不可以。VB是一种高级编程语言,不能读取活动窗口内存。因为读取其他程序的内存需要涉及到系统底层操作,需要使用特殊的技术和工具,这些操作会违反操作系统的安全策略。

《VB中 保持自身窗口始终为活动状态;》
答:lostfocus,gotfocus事件都是VB内部触发,根本不能实现你的要求。我实现的方式是使用API==GETACTIVEWINDOWS,获得激活窗口的hwnd,如果不是自己这个vb窗体的句柄,就自动激活自己。当然还要使用定时器定时执行这个检查过程。

《VB怎么获取当前活动窗口的坐标?》
答:ActiveWindowHwnd = GetForegroundWindow '获得活动窗口的句柄 GetWindowRect ActiveWindowHwnd, ActiveWindowRECT '获得活动窗口的区域并保存在 ActiveWindowRECT 变量中 '在窗口上输出信息 Me.Cls Print "活动窗口的坐标是(" & ActiveWindowRECT.x & "," & ActiveWindowRECT.y & ")"End Sub ...

《400分!!!vb 关于获取输入法的问题》
答:很简单,先用GetForegroundWindow获取当前活动窗口的句柄,再用GetWindowThreadProcessID获得当前窗口的线程ID,把它传递给GetKeyboardLayout就可以获得当前窗口的输入法ID,然后再转换成字符串就可以了。在一个新form上放置一个Timer和一个List控件,然后使用下面的代码即可每2秒钟获得一次当前窗口标题和当前窗口的...

《在VB中,如何把其他正在运行的窗口设为活动窗口》
答:在Vb 6.0版本中”工程“菜单下 2.选择“属性”菜单项 3在打开的对话框中选择“通用”选项卡 4 在“启用”列表框中选择要启动的表单 却可

《...获得窗口句柄后怎样判断该窗口是否为活动窗口(具有焦点)》
答:'获得前景窗口句柄 If hwd1 = hwd2 Then MsgBox "指定窗口为活动状态!"'判断是否相同 '可以通过ModifyMenu修改系统菜单来禁止移动,但并不适用所有窗体,有的窗体不具有系统菜单(BorderStyle=0)'但通过子类化仍可以实现系统菜单具有的功能,新建窗体,添加command1,复制粘贴下段代码 Private Declare ...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网