Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Screen Capture

pointer [06.11.2012 08:09:35]

#

Kopioin seuraavan koodin pätkän ohjelmaani, enkä nyt ymmärrä mitä se tekee. mutta miten tuota koodia pitäisi muuttaa että se rajaa tuon screen capturen, vain tiettyyn osann näytöstä(en halua että valikot näkyvät kuvassa)? Toinen asia mitä mietin on että miten tuolla saisi liitettyä screen capturen suoraan wordiin, ettei sitä kuvaa tarvitsisi ensin tallentaa manuaalisesti ja sitten manuualisesti liittää osaksi word tiedostoa?

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim bounds As Rectangle
       Dim screenshot As Bitmap
       Dim graphs As Graphics
       bounds = Screen.PrimaryScreen.Bounds
       screenshot = New Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb)
       graphs = Graphics.FromImage(screenshot)
       graphs.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy)
       PictureBox22.Image = screenshot

       Dim savefiledialog As New SaveFileDialog
       Try
           savefiledialog.Title = "Save File"
           savefiledialog.FileName = "*.Jpeg"
           If savefiledialog.ShowDialog() = DialogResult.OK Then
               PictureBox22.Image.Save(savefiledialog.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)
           End If
       Catch ex As Exception

       End Try

   End Sub

Grez [06.11.2012 08:31:25]

#

pointer kirjoitti:

Olen toteuttanut screen capturen seuraavalla tavalla

Olet copy-pastennut ruudunkaappauskoodin jostain ja nyt sinulla ei ole mitään hajua mitä se tekee? Nimittäin jos olisit itse koodannut tuon, niin vastaukset esittämiisi kysymyksiin olisivat itsestäänselviä. Mutta ei se mitään.

pointer kirjoitti:

miten voin rajata tuon screen capturen, vain tiettyyn osann näytöstä

Muutat bounds-olion mittoja (vasen yläkulma, korkeus, leveys) sen jälkeen kun olet määritellyt sen olevan koko päänäyttö (Screen.PrimaryScreen.Bounds)

pointer kirjoitti:

Toinen ongelmani on että miten saan liitettyä screen capturen suoraan wordiin, ettei sitä kuvaa tarvitsisi ensin tallentaa manuaalisesti ja sitten manuualisesti liittää osaksi word tiedostoa?

Poistat koko savefiledialog -hässäkän. Sinullahan on jo kuvan tallennuskoodi, jossa talletettavan tiedoston nimi määritellään savefiledialogilla.

Eli
1) savefiledialog.FileName asemesta käytät tiedostonimeä, jonka ohjelmasi määrittelee (esim. kehittää jonkin vapaan tiedostonimen tilapäishakemistoon ja poistaa sen sieltä kun prosessi on valmis).

2) teet Wordin automaatiotoimintoja käyttävän koodin, joka lisää word-dokumentille ohjelman määrittämään paikkaan tallennetun tiedoston.

pointer [06.11.2012 09:34:07]

#

Yritin kyllä ensin itse tuota ymmärtää ja kokeilin erilaisia asioita ja katsoin mitä tapahtuu, mutta oli silti tyhmää kopioida koodi.

Kiitos Grez jälleen kerran loistavasta avusta. Nyt ymmärrän paremmin mitä tuo koodi tekee ja tästälähtien yritän itse koodata, enkä kopioi!

Grez [06.11.2012 09:52:13]

#

Ei kopiointi sinänsä ole tyhmää, mutta yleisesti ottaen olisi hyvä pystyä selvittämään mitä kopioitu koodi tekee. Kyllä minäkin välillä kopioin pätkiä vaikka StackOverflowsta, mutta yleensä myös ymmärrän mitä se kopioitava koodi tekee.

Tietysti se, että antaa ymmärtää että olisi itse tehnyt koodin, jonka on lähinnä kopioinut jostain, on sikäli tyhmää että se voi haitata neuvomista.

pointer [06.11.2012 15:02:37]

#

Tarkoitukseni ei ollut antaa ymmärtää että itse olisin tuon tehnyt, en ajatellut asiaa ennen viestin lähettämistä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta