标题:请帮我修改一下程序
只看楼主
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
结帖率:69.81%
 问题点数:0 回复次数:6 
请帮我修改一下程序
这是我在网上找到的一个截屏程序,很好用,但是我想去除下面的任务栏,因为任务栏的时间每分钟都会改变,而我截屏是用来进行图片对比的,本来屏幕上没有任何变化,只是由于时间的改变而报告
Form2.rar (3.92 KB)
两个图片不同,请问可以针对这个程序进行修改么?请帮我修改一下吧!
搜索更多相关主题的帖子: 图片 任务栏 网上 
2010-05-05 09:51
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
我也不会.只想到了实现的方法.

1\读注册表,确定时间的位置, 右下,右上,左下 ,
2\读注册表,确定时间是否显示.可以不做.
3\读注册表,确定任务栏的宽度

4、截屏后,把图像重新复制到另一个 picbox中去,空下任务栏的位置不复制。然后再保存。从而避开时间部分。
5、或者比较时,自己读取BMP文件,空掉 对应时间位置的数据比较。

我前3点均不会。



授人于鱼,不如授人于渔
早已停用QQ了
2010-05-05 10:02
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
得分:0 
敬请版主帮忙根据您提出的第4个或第5个方法修改一下程序,哪个方法方便就用哪个。谢谢您啦!
2010-05-05 10:11
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 

第4种方法。

'调整目标大
Picture2.Height = Picture1.Picture.Height - 240 '减去空的下边高度
Picture2.Width = Picture1.Picture.Width

'此行未测试,可能需要写全参数来
'object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode
Picture2.PaintPicture Picture1.Picture, 0, 0             '复制图像


SavePicture Picture2.Image, "D:\1.bmp"                   '保存图像




[ 本帖最后由 风吹过b 于 2010-5-5 10:27 编辑 ]

授人于鱼,不如授人于渔
早已停用QQ了
2010-05-05 10:25
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
得分:0 
我这样修改后,得出的图片不对
Private Sub Command1_Click()
Set Picture1.Picture = CaptureScreen()
Picture2.PaintPicture Picture1.Picture, 0, 0             '复制图像
'调整目标大小
Picture2.Height = Picture1.Picture.Height - 240 '减去空的下边高度
Picture2.Width = Picture1.Picture.Width
SavePicture Picture2.Image, "D:\1.bmp"                   '保存图像
2010-05-05 10:54
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
Private Sub Command1_Click()
Set Picture1.Picture = CaptureScreen()
'   SavePicture Picture1.Picture, "D:\1.bmp"

'1 picture1 autosize= true
'2 pictuer2 autoredraw = true
'调整目标大小
Picture2.Height = Picture1.Height - 400 '减去空的下边高度
Picture2.Width = Picture1.Width

Picture2.PaintPicture Picture1.Picture, 0, 0             '复制图像

SavePicture Picture2.Image, "D:\1.bmp"                   '保存图像
   
End Sub



[ 本帖最后由 风吹过b 于 2010-5-5 11:18 编辑 ]

授人于鱼,不如授人于渔
早已停用QQ了
2010-05-05 11:11
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
得分:0 
Option Explicit
Private Const SWP_HIDEWINDOW = &H80

Private Const SWP_SHOWWINDOW = &H40

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Command1_Click()
    Dim fhWnd As Long
    fhWnd = FindWindow("SHELL_traywnd", vbNullString)     '找到任务栏
    'Debug.Print fhWnd                '看看有没有找到
    SetWindowPos fhWnd, 0, 0, 0, 0, 0, SWP_HIDEWINDOW     '隐藏任务栏
End Sub

Private Sub Command2_Click()
    Dim hhWnd As Long
    hhWnd = FindWindow("SHELL_traywnd", vbNullString)
    SetWindowPos hhWnd, 0, 0, 0, 0, 0, SWP_SHOWWINDOW     '恢复任务栏
End Sub
可以把command1_click的代码弄到form_load中,这样就可以一启动就能隐藏任务栏了
我弄两个按钮是为了一个隐藏,一个恢复
不知道是不是你要的效果
2010-05-05 23:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-305428-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.302950 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved