screenshot

n000b

Sanokaas miten voi laittaa vb-ohjelman ottamaan ruudunkaappauksen aktiivisesta ikkunasta tai koko näytöstä, ja tallentaa sen bmp-tiedostoon

1

387

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Orwell

      Tarvitset PictureBoxin ja OptionButtonit... ja lisäksi tietenkin kaikki nuo API komennot yms...
      Tuon PictureBoxin AutoRedraw arvo pitää olla True. Muutenkin voit joutua säätämään jotain, mutta idean pitäisi toimia...

      Private Sub ScreenShot()

      Dim lhWnd As Long
      Dim lhDC As Long
      Dim lLeft As Long
      Dim lTop As Long
      Dim lWidth As Long
      Dim lHeight As Long
      Dim wplc As WINDOWPLACEMENT
      Dim sName As String

      sName = vbNullString

      lLeft = 0
      lTop = 0

      'Koko näyttö
      If Option1(0).Value Then
      lhWnd = GetDesktopWindow()
      lWidth = Screen.Width
      lHeight = Screen.Height
      sName = "Test_scr"
      'Aktiivi ikkuna
      ElseIf Option1(1).Value Then
      lhWnd = GetActiveWindow()
      Call GetWindowPlacement(lhWnd, wplc)
      'Lasketaan formin koko (koko pixeleinä -> muutetaan Twipeiksi)
      lWidth = (wplc.rcNormalPosition.Right - wplc.rcNormalPosition.Left) * Screen.TwipsPerPixelX
      lHeight = (wplc.rcNormalPosition.Bottom - wplc.rcNormalPosition.Top) * Screen.TwipsPerPixelY
      sName = "Test_win"
      End If

      Picture1.Width = lWidth
      Picture1.Height = lHeight

      lhDC = GetWindowDC(lhWnd)

      'Kopioi PictureBoxiin
      Call BitBlt(Picture1.hdc, 0, 0, _
      lWidth, lHeight, lhDC, _
      lLeft, lTop, vbSrcCopy)

      'Tallennetaan kuva
      Call SavePicture(Picture1.Image, "c:\temp\" & sName & ".bmp")

      Call ReleaseDC(lhWnd, lhDC)
      End Sub

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Medvedev: Suomi tuhoutuu ydinsodassa ensimmäisenä

      Venäjän ydinaseilla on lyhyin matka Suomeen, joten ydinsodassa Suomi tuhoutuu heti sodan alkuminuuteilla, muilla mailla
      Maailman menoa
      598
      2107
    2. Sinä. Just sinä.

      Palataan ajassa taaksepäin vuosi tai kaksi. Mitä tekisit toisin jos voisit?
      Ikävä
      105
      1053
    3. Hotellille löytyi ostaja....

      Tämän päivän Kainuun Sanomissa oli uutinen, että pesänhoitajan mukaan Hotelli Kainuu myydään ensiviikolla. Hieno homma,
      Kuhmo
      18
      987
    4. Saana airola ja. muusikko spekulaatiota

      Saara airolan kirja muusikko mies. Oisko redrama tai lauri tähkä? Saana oli 13 v vuonna 2014 Tekoäly sanoo : tähkä Julki
      Yhteiskunta
      4
      867
    5. Onko se loukkaavaa

      Kun joka kerta tuijotan sun peppua. En mahda sille mitään, että se vangitsee katseeni. Pohdin vain että ei minusta ole k
      Ikävä
      101
      845
    6. Miten kuvaisit tunteitasi

      tällä hetkellä?
      Ikävä
      79
      785
    7. Onko kaivattusi seinäruusu?

      Kun hän saapuu paikalle, huomaako kukaan, vai kääntyvätkö päät? Onko se hyvä vai huono juttu? Oletko sinä huomattu vai
      Ikävä
      50
      749
    8. Jos saisit palata takaisin johonkin vuoteen

      Mikä vuosi se olisi? Ja mitä siinä hetkessä tapahtuisi?
      Ikävä
      87
      727
    9. Tiedätkö kaivattusi musiikkimaun?

      Minkälaisesta musiikista hän pitää?
      Ikävä
      63
      715
    10. Moi, olen Lampunhenki

      Kerro toivomuksesi🏺
      Ikävä
      65
      563
    Aihe