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
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.
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!
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.
Tarkoitukseni ei ollut antaa ymmärtää että itse olisin tuon tehnyt, en ajatellut asiaa ennen viestin lähettämistä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.