PrintScreen včetně kursoru myši   otázka

VB.NET

Dobrý den.

Poradil by mi prosím někdo, jak mám ve VB 2008 provést Printscreen, aby obsahoval i kursor myši?

Používám tento kód:

            With Screen.PrimaryScreen.Bounds                                                     'Specifikuje primární obrazovku. (V případě systému s více monitory).
                Using bmp As New Bitmap(.Width, .Height, Imaging.PixelFormat.Format32bppRgb)     'Vytvořit bitovou mapu v paměti požadované velikosti.
                    Using g = Graphics.FromImage(bmp)                                            'Vytvořit "kreslící plátno".
                        g.CopyFromScreen(0, 0, 0, 0, New Size(.Width, .Height))                  'Zkopírovat obsah primární obrazovky na kreslící plátno.
                        bmp.Save("Scr.jpg", Imaging.ImageFormat.Jpeg)                            'Uložit bitovou mapu do souboru. (Stejná složka, jako aplikace.)
                    End Using
                End Using
            End With

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Skuste tento kod :

Dim ScreenSize As Size = New Size(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
            Dim screenGrab As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
            Dim g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(screenGrab)
            g.CopyFromScreen(New Point(0, 0), New Point(0, 0), ScreenSize)
            screenGrab.Save(Application.StartupPath + "\Screen.jpeg")

Neskusal som ci funguje , ale pochybujem o tom lebo mys nieje obsah obrazovky , je to samostatny buffer teda nieje sucast obrazovky a treba sa spytat systemu kde je na obrazovke a vykreslit ho do screenshotu..

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Máte pravdu. Skutečně to nefunguje. Kursor chybí:-)

Ale nevadí. Já jej v tom printScreenu zase až tak nutně nepotřebuji.

Ještě zkusím ty další rady.

V každém případě děkuji za snahu.

Přeji příjemný den.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Budete muset použít Windows API, ukázku naleznete zde:

http://www.codeproject.com/KB/cs/Desktop...

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Prohlédnu, vyzkouším....

No. To API si asi nechám až na konec. Já jsem ve VB fakt začátečník. Už jsem na ty odkazy koukal, ale nejak z toho nejsem moudrý.

Budu se muse nejprve trošku učit. :-)

Ale rozhodně dík za radu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Můžete tam ten kurzor dodatečně dokreslit:

'pod řádek g.CopyFromScreen(...) ale nad řádek bmp.Save(...)
                            g.DrawImage(My.Resources.kurzor, Cursor.Position.X, Cursor.Position.Y)

Ale nebudete tam mít aktuální kurzor ale obrázek co natáhnete do resources

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback