• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Chụp ảnh màn hình

Các thủ thuật về âm thanh, đồ họa, truyền thông đa phương tiện...
Hình đại diện của người dùng
Dang Minh Du
Thành viên ưu tú
Thành viên ưu tú
Bài viết: 531
Ngày tham gia: T.Tư 02/04/2008 2:08 pm
Đến từ: RGames Team
Has thanked: 3 time
Been thanked: 17 time
Liên hệ:

Chụp ảnh màn hình

Gửi bàigửi bởi Dang Minh Du » T.Năm 19/06/2008 11:16 am

Thủ thuật: Chụp ảnh màn hình
Tác giả: Đặng Minh Dự sưu tầm
Mô tả: Chụp ảnh màn hình


Mã: Chọn hết

  1. Option Explicit
  2.  
  3. Private Declare Function GetDesktopWindow Lib "user32" () As Long
  4. Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
  5. Private Declare Function BitBlt Lib "gdi32" _
  6.                                     (ByVal hDestDC As Long, _
  7.                                      ByVal x As Long, _
  8.                                      ByVal y As Long, _
  9.                                      ByVal nWidth As Long, _
  10.                                      ByVal nHeight As Long, _
  11.                                      ByVal hSrcDC As Long, _
  12.                                      ByVal xSrc As Long, _
  13.                                      ByVal ySrc As Long, _
  14.                                      ByVal dwRop As Long) As Long
  15.  
  16. Private Sub Form_Load()
  17. Dim A As Long
  18. Dim s As Long
  19. Form1.AutoRedraw = True
  20. Form1.ScaleMode = 1
  21. A = GetDesktopWindow()
  22. s = GetDC(A)
  23. BitBlt Me.hdc, 0, 0, Screen.Width, Screen.Height, s, 0, 0, vbSrcCopy
  24. End Sub


~°Dòng Sông Mùa Thu°~
Studying...!

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Re: Chụp ảnh màn hình

Gửi bàigửi bởi truongphu » T.Năm 22/01/2009 9:06 pm

langtuIT300789 đã viết:MinhDu này mình nghĩ chúng ta có thể chụp màn hình bằng hàm keybd_event đấy, mình ko bít cái phím print screen nó có kí tự thế nào nữa nếu bít thì chúng ta có thể viết một cách dễ dàng.


Mã: Chọn hết

  1. Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, _
  2. ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
  3. Const VK_SNAPSHOT = &H2C
  4.  ' Ghi chú: không dùng Const VK_PRINT = &H2A
  5. Private Sub Command1_Click()
  6. keybd_event 44, 0, 0, 0: keybd_event 44, 0, 2, 0
  7. End Sub
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

ltv_kc
Bài viết: 8
Ngày tham gia: T.Sáu 02/05/2008 10:25 am

Re: Chụp ảnh màn hình

Gửi bàigửi bởi ltv_kc » T.Sáu 14/08/2009 8:10 pm

Ý mình là muốn chuyển thành kiểu byte để dùng winsock chuyển đến 1 máy khác, show trên 1 picture box trên máy đó. Nếu ghi thành file rồi chuyển thi làm chậm tốc độ truyền dữ liệu.

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Re: Chụp ảnh màn hình

Gửi bàigửi bởi truongphu » T.Sáu 14/08/2009 8:22 pm

ltv_kc đã viết:muốn chuyển thành kiểu byte để dùng winsock chuyển đến 1 máy khác,


Đây là tài liệu tôi lưu trữ, nhưng chưa test

Convert a Picture Box image to a Byte Array in VB6.rar

Mã: Chọn hết

  1. Private Type BITMAP
  2.     bmType As Long
  3.     bmWidth As Long
  4.     bmHeight As Long
  5.     bmWidthBytes As Long
  6.     bmPlanes As Integer
  7.     bmBitsPixel As Integer
  8.     bmBits As Long
  9. End Type
  10.  
  11. Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
  12. Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
  13. Dim PicBits() As Byte
  14.  
  15. Private Sub GetPictureBytes()
  16.   Dim PicInfo As BITMAP
  17.  
  18.   GetObject Picture1.Picture, Len(PicInfo), PicInfo
  19.  
  20.   ReDim PicBits((PicInfo.bmWidth * PicInfo.bmHeight * 3) - 1) As Byte
  21.  
  22.   GetBitmapBits Picture1.Picture, UBound(PicBits), PicBits(0)
  23. End Sub
  24.  
  25. Private Sub Command1_Click()
  26. GetPictureBytes
  27. MsgBox UBound(PicBits)
  28. Dim i As Long, aa As String
  29. For i = 0 To UBound(PicBits)
  30.     DoEvents
  31.     aa = aa & PicBits(i)
  32.  
  33. Next
  34. MsgBox "Ðã Xong " & Len(aa)
  35. End Sub
  36.  
Tập tin đính kèm
Convert a Picture Box image to a Byte Array in VB6.rar
(14.01 KiB) Đã tải 431 lần
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh


Quay về “[VB] Âm thanh và Đồ họa”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách