如何將螢幕或使用中視窗複製到剪貼簿從 Visual Basic

文章翻譯 文章翻譯
文章編號: 240653 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何以程式設計的方式複製到剪貼簿的使用中視窗或整個螢幕和列印影像。

其他相關資訊

程式碼包含在知識庫文件:
161299如何擷取和列印螢幕、 一個表單或任何視窗
示範如何擷取任何表單或包括在螢幕的視窗,並將其置於一個 Visual Basic 圖片物件。如果唯一的需求是複製到剪貼簿的使用中視窗或螢幕,keybd_event API 是許多較容易和低負荷的方法。呼叫 keybd_event API 已達到輸入按鍵組合 PRINTSCRN (複製到剪貼簿螢幕) 或 ALT + PRINTSCRN (複製到剪貼簿的使用中視窗) 的功能相同。如果您也需要列印影像,隱藏的 PictureBox 可以提供這項功能。

逐步範例

  1. 啟動新的 Visual Basic 標準 EXE 專案。預設會建立 Form1。
  2. 將三個 CommandButtons 和一個 PictureBox 加入 Form1。
  3. 將下列程式碼加入至 Form1 的 [一般宣告區段:
    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)
    
    Private Declare Function GetVersionExA Lib "kernel32" _
          (lpVersionInformation As OSVERSIONINFO) As Integer
    
    Private Type OSVERSIONINFO
        dwOSVersionInfoSize As Long
        dwMajorVersion As Long
        dwMinorVersion As Long
        dwBuildNumber As Long
        dwPlatformId As Long
        szCSDVersion As String * 128
    End Type
    
    Private Const KEYEVENTF_KEYUP = &H2
    Private Const VK_SNAPSHOT = &H2C
    Private Const VK_MENU = &H12
    
    Dim blnAboveVer4 As Boolean
    
    Private Sub Command1_Click()
        If blnAboveVer4 Then
            keybd_event VK_SNAPSHOT, 0, 0, 0
        Else
            keybd_event VK_SNAPSHOT, 1, 0, 0
        End If
    End Sub
    
    Private Sub Command2_Click()
        If blnAboveVer4 Then
            keybd_event VK_SNAPSHOT, 1, 0, 0
        Else
            keybd_event VK_MENU, 0, 0, 0
            keybd_event VK_SNAPSHOT, 0, 0, 0
            keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
            keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
        End If
    End Sub
    
    Private Sub Command3_Click()
        ' Load the captured image into a PictureBox and print it
        Picture1.Picture = Clipboard.GetData()
        Printer.PaintPicture Picture1.Picture, 0, 0
        Printer.EndDoc
    End Sub
    
    Private Sub Form_Load()
        Dim osinfo As OSVERSIONINFO
        Dim retvalue As Integer
       
        osinfo.dwOSVersionInfoSize = 148
        osinfo.szCSDVersion = Space$(128)
        retvalue = GetVersionExA(osinfo)
        If osinfo.dwMajorVersion > 4 Then blnAboveVer4 = True
    
        Picture1.Visible = False
        Command1.Caption = "Print Screen"
        Command2.Caption = "Alt+Print Screen"
        Command3.Caption = "Print Image"
    End Sub
    					
  4. 開啟 [Microsoft 小畫家],然後再執行專案。
  5. 按一下 [列印螢幕] 按鈕,切換至小畫家,和按 CTRL + V 鍵 將剪貼簿內容貼到 [小畫家]。貼上整個螢幕。
  6. 按一下 [Alt + 列印螢幕] 按鈕,切換至前,作為 [小畫家和一次按下 CTRL + V 鍵。使用中視窗會貼上。
  7. 按一下 [列印影像] 按鈕,然後所擷取的影像將會列印 (使用隱藏的 PictureBox)。

?考

如需詳細資訊請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中:
161299如何擷取和列印螢幕、 一個表單或任何視窗

189249如何判斷正在使用哪一個 32 位元 Windows 版本

屬性

文章編號: 240653 - 上次校閱: 2004年6月29日 - 版次: 2.1
這篇文章中的資訊適用於:
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
關鍵字:?
kbmt kbapi kbclipboard kbhowto kbprint KB240653 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:240653
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com