截取屏幕图并生产bmp文件: Option Explicit Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) Const VK_SNAPSHOT As Byte = &H2C Private Sub Command1_Click() Call keybd_event(VK_SNAPSHOT, 0, 0, 0) DoEvents SavePicture Clipboard.GetData, "c:\temp.bmp" End Sub把bmp文件转换格式:(使用控件) http://ecom.xj169.net/vbgood/show_widget.asp?id=103
to y_shen(y_shen):分我是会如数给的,我用名誉保证! to jisheng(古朴的狼):仁兄给我的网址打不开呀
我也有,,,也是 BMP 的,,,,不过我再试试改代码,,,,,,可以保存成GIF或JPG
声明: Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function EmptyClipboard Lib "user32" () As Long Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As Long) As Long Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long Private Declare Function CloseClipboard Lib "user32" () As Long 函数: Sub ScrnCap(Lt, Top, Rt, Bot) rWidth = Rt - Lt rHeight = Bot - Top SourceDC = CreateDC("DISPLAY", 0, 0, 0) DestDC = CreateCompatibleDC(SourceDC) Bhandle = CreateCompatibleBitmap(SourceDC, rWidth, rHeight) SelectObject DestDC, Bhandle BitBlt DestDC, 0, 0, rWidth, rHeight, SourceDC, Lt, Top, &HCC0020 Wnd = Screen.ActiveForm.hwnd OpenClipboard Wnd EmptyClipboard SetClipboardData 2, Bhandle CloseClipboard DeleteDC DestDC ReleaseDC Dhandle, SourceDC End Sub 以下的示例把屏幕图象捕捉后,放到Picture1 中。 Sub Command1_Click() Form1.Visible = False ScrnCap 0, 0, 640, 480 Form1.Visible = True picture1 = Clipboard.GetData() End Sub
Option Explicit
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Const VK_SNAPSHOT As Byte = &H2C
Private Sub Command1_Click()
Call keybd_event(VK_SNAPSHOT, 0, 0, 0)
DoEvents
SavePicture Clipboard.GetData, "c:\temp.bmp"
End Sub把bmp文件转换格式:(使用控件)
http://ecom.xj169.net/vbgood/show_widget.asp?id=103
to jisheng(古朴的狼):仁兄给我的网址打不开呀
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
函数:
Sub ScrnCap(Lt, Top, Rt, Bot)
rWidth = Rt - Lt
rHeight = Bot - Top
SourceDC = CreateDC("DISPLAY", 0, 0, 0)
DestDC = CreateCompatibleDC(SourceDC)
Bhandle = CreateCompatibleBitmap(SourceDC, rWidth, rHeight)
SelectObject DestDC, Bhandle
BitBlt DestDC, 0, 0, rWidth, rHeight, SourceDC, Lt, Top, &HCC0020
Wnd = Screen.ActiveForm.hwnd
OpenClipboard Wnd
EmptyClipboard
SetClipboardData 2, Bhandle
CloseClipboard
DeleteDC DestDC
ReleaseDC Dhandle, SourceDC
End Sub
以下的示例把屏幕图象捕捉后,放到Picture1 中。
Sub Command1_Click()
Form1.Visible = False
ScrnCap 0, 0, 640, 480
Form1.Visible = True
picture1 = Clipboard.GetData()
End Sub
http://www.chengxuyuan.net/down/vcocx/down.cgi?menu=dj&gogo=6&url=http://go3.163.com/~cxygo/Graph/gvocx.zip
jiami(虾米)兄的方法是可行的
jiami(虾米)兄的方法虽然很好,不过只能支持BMP格式的,看来现在问题的中心在于文件格式的转换了
再次谢谢各位!马上散分!
谢过!:)
呵呵
[email protected]
[email protected]
[email protected]