口袋社区-Poke The BBS's Archiver

深红喷火龙 发表于 2007-10-12 21:51

visual basic高手进

有没有什么办法可以将整个系统的鼠标事件传输到一个窗口,就是说我在屏幕上点一下鼠标,目标窗口就也会接受到鼠标点击事件,我想做一个像qq截屏功能的一个程序,我试过setcapture这个api,可是一触发mousedown 就立即自动触发mousemove +mouseup 了,我的滑鼠根本没抬起,有什么更好的方法?[yct6][yct6][yct6][yct6][yct6][yct6]拜托了

[[i] 本帖最后由 深红喷火龙 于 2007-10-14 08:26 PM 编辑 [/i]]

最美我中文 发表于 2007-10-12 21:55

这个用VC或Delphi或许更好实现
因为VB的API太少……
至少我还没发现……

深红喷火龙 发表于 2007-10-13 12:49

screen.mousepointer=vbcrosshair
为什么我运行时,在窗体内指针变了,在窗口以外鼠标的指针并没有改变啊?

[[i] 本帖最后由 深红喷火龙 于 2007-10-13 12:51 PM 编辑 [/i]]

最美我中文 发表于 2007-10-13 13:19

作用范围为该程序的窗口范围。
不过给你个建议
学Q
他是先截整个屏幕的图
然后再从那个图里截你需要的部分

liuyanghejerry 发表于 2007-10-13 17:08

一个VB程序似乎只能接收自己窗体内的消息……

最美我中文 发表于 2007-10-13 18:10

恭喜你回答对了

深红喷火龙 发表于 2007-10-13 20:31

[quote]学Q
他是先截整个屏幕的图
[/quote]
Q是谁?
我就是这样干的
dim hdc1 as long,hdc2 as long,lwidth as long,lheight as long,a as long,b as long , c as long
lwidth=re.right-re.left:lheight=re.bottom-re.top 'rect类型
hdc1 = createdc("display",0,0,0&):hdc2= createcompetibledc(hdc1)
a=createcompetiblebitmap(hdc1,lwidth,lheight)
selectobject hdc2,a:bitblt hdc2 ,lwidth,lheight,hdc1,re.left,re.top,&HCC0020
……………………

最美我中文 发表于 2007-10-14 11:34

Q是Tencent Q
你搞个GB它里面有个Tencent Traveller的截图软件
他那个就很好

深红喷火龙 发表于 2007-10-14 12:56

可是我调试的时候很正常,可是一生成exe时就出问题了。帮我看看

最美我中文 发表于 2007-10-14 13:51

SetCapture Me.hwnd
自己想想Me.hwnd在调试和编译后的作用范围

深红喷火龙 发表于 2007-10-14 19:31

[quote]原帖由 [i]Woodu[/i] 于 2007-10-14 01:51 PM 发表
SetCapture Me.hwnd
自己想想Me.hwnd在调试和编译后的作用范围 [/quote]
恕我愚笨,可否明示

最美我中文 发表于 2007-10-15 12:07

调试过程作用于整个系统句柄。
而编译后就像Jerry说的,仅作用于该程序。

深红喷火龙 发表于 2007-10-15 12:23

看来只能够先把整张屏幕截下来放到窗体那了………………

最美我中文 发表于 2007-10-15 12:39

恭喜你真强大
哈~
[url]http://poketb.cn/bbs/viewthread.php?tid=2674&extra=page%3D1[/url]

深红喷火龙 发表于 2007-10-19 19:00

帮我测试一下,千辛万苦编好了,同学却说不能用,[yct1][yct1]帮我看看是否真得不能用

最美我中文 发表于 2007-10-19 21:01

请你替我YG你那位同学。
正常。恭喜

深红喷火龙 发表于 2007-10-20 07:54

问一句:yg是什么???
8过能用,我真得很高兴

[[i] 本帖最后由 深红喷火龙 于 2007-10-20 07:57 AM 编辑 [/i]]

最美我中文 发表于 2007-10-20 11:55

阉割= =
哈哈哈哈哈
这贴请看完后砍。

页: [1]

Powered by Discuz! Archiver 6.1.0F  © 2001-2007 Comsenz Inc.