2010-04-01 29 views
5

Tôi tìm thấy mã ở đâu đó và tôi thấy nó khá hữu ích nhưng tôi muốn tìm cách để làm cho nó hoạt động để nó chỉ chụp mục tiêu cửa sổ đã cho. Có thể với một processID hoặc Window Name. Ngay cả khi cửa sổ đó không hoạt động.VB.NET Window Screen Capture (ALT + PRINTSCREEN)

Tôi không muốn làm cho cửa sổ đó hoạt động nhưng muốn chụp màn hình như thể tôi đang làm Alt + PrintScreen trên đó.

Đây là mã mà làm việc cho đầy đủ Screen Capture

Private bmpScreenShot As Bitmap 
    Private gfxScreenshot As Graphics 

    bmpScreenShot = New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb) 

    gfxScreenshot = Graphics.FromImage(bmpScreenShot) 
    gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy) 

    bmpScreenShot.Save(fileName, ImageFormat.Png) 

tôi sử dụng Visual Basic 2008 Express

Cảm ơn bạn trước!

+0

có thể trùng lặp với [Chụp ảnh màn hình của cửa sổ hiện hoạt?] (Http://stackoverflow.com/questions/1163761/capture-screenshot-of-active-window) – sloth

Trả lời

1

Nhìn này Capture screenshot of active window? Thay vì this.Handle (cửa sổ hiện tại), bạn có thể chèn một tay cầm của bất kỳ cửa sổ khác (sử dụng WinAPI các chức năng như FindWindow)

1

này hoạt động trong vb.net2.0. Tôi chỉ sử dụng nó. Here is the source code.

Dim SC As New ScreenShot.ScreenCapture 

    'captures entire desktop straight to file 
    SC.CaptureScreenToFile("c:\accops\test\desktop2.jpg", Imaging.ImageFormat.Jpeg) 
0

Cách đơn giản nhất để làm điều đó, mặc dù đó là một hack, là thế này:

SendKeys.Send("{PRTSC}") 
Dim Screenshot As Image = Clipboard.GetImage() 
Screenshot.Save("c:\ScreenShot.jpg", System.Drawing.Imaging.ImageFormat.Jpeg) 
1

này sẽ cung cấp cho bạn Alt + Printscreen, chỉ hiển thị phía trước ứng dụng nhất.

SendKeys.Send("%{PRTSC}") 

Sau đó tiếp tục theo cách thông thường:

Dim Screenshot As Image = Clipboard.GetImage() 
Screenshot.Save("c:\ScreenShot.jpg", System.Drawing.Imaging.ImageFormat.Jpeg) 
0

Capture các hoạt động dạng.

Private Sub tsbCamera_Click(sender As Object, e As EventArgs) Handles tsbCamera.Click 
    Dim bm As New Bitmap(Width, Height) 
    DrawToBitmap(bm, New Rectangle(0, 0, Width, Height)) 
    Dim name As String = InputBox("Name it:") 
    bm.Save(Application.StartupPath & "\ScreenShot\" & name & ".png", System.Drawing.Imaging.ImageFormat.Png) 
End Sub