Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    VB.NET 2003 emulare tasto print

    Salve avrei una domanda che credo facile. Come faccio mio programma a salvare la schermata (come con il tasto print (o stampa se ho la tastiera in italano ) ) e a incollarla in una jpg?

    Asp etto anzioso vostra risposta. :master:

  2. #2
    Puoi usare la funzione keybd_event della libreria user32.dll di windows per emulare la pressione di PrintScreen. La dichiarazione della procedura è:
    codice:
    Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _ 
    ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
    e la puoi lanciare ottenendo il codice di PrintScreen:
    codice:
    keybd_event(Windows.Forms.Keys.PrintScreen, 0, 0, 0)
    Dopodichè, l'immagine dello schermo sarà incollata nella clipboard. Per ottenerla:
    codice:
    Clipboard.GetImage()

  3. #3
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541
    Originariamente inviato da Il Totem
    Puoi usare la funzione keybd_event della libreria user32.dll di windows per emulare la pressione di PrintScreen. La dichiarazione della procedura è:
    codice:
    Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _ 
    ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
    e la puoi lanciare ottenendo il codice di PrintScreen:
    codice:
    keybd_event(Windows.Forms.Keys.PrintScreen, 0, 0, 0)
    Dopodichè, l'immagine dello schermo sarà incollata nella clipboard. Per ottenerla:
    codice:
    Clipboard.GetImage()
    Ciao scusa se riapro, ma che classi bisogna importare per usare windows?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Non volendo usare le API, si potrebbe:

    codice:
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Me.Hide()
            System.Threading.Thread.Sleep(250)
            Dim myEncoder As New EncoderParameters(1)
            myEncoder.Param(0) = New EncoderParameter(Encoder.Quality, 100)
            Dim bmp As Bitmap = New Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)
            Dim g As Graphics = Graphics.FromImage(bmp)
            g.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, _
                             Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy)
            g.Dispose()
            bmp.Save("C:\screen.jpg", MyCodec, myEncoder)
            Me.Show()
        End Sub
    
        Private Function MyCodec() As ImageCodecInfo
            Dim codecs As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders
            For Each codec As ImageCodecInfo In codecs
                If (codec.MimeType = "image/jpeg") Then
                    Return codec
                End If
            Next
            Return Nothing
        End Function
    Sbagliare è umano, perseverare è diabolico.

  5. #5
    Quest'ultimo metodo tra l'altro è a mio avviso molto migliore perché (1) è più efficiente, (2) non ricorre a trucchi come simulare pressioni di tasti e (3) evita di far perdere il contenuto degli appunti.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541
    Originariamente inviato da MItaly
    Quest'ultimo metodo tra l'altro è a mio avviso molto migliore perché (1) è più efficiente, (2) non ricorre a trucchi come simulare pressioni di tasti e (3) evita di far perdere il contenuto degli appunti.
    mmm posso fare una domanda... anche se non so se sia una cosa fattibile.
    Si può fare che dando un indirizzo web esempio www.miosito.it/index.html
    riesco a fare una preview della pagina al volo? ovvero creare unì'immagine di quella pagina?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Cosa intendi creare un'immagine di quella pagina? ? Salvare su file qulla preview ?
    Sbagliare è umano, perseverare è diabolico.

  8. #8
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541
    Originariamente inviato da Pirelli72
    Cosa intendi creare un'immagine di quella pagina? ? Salvare su file qulla preview ?
    tipo io passo una url... prendo l'html che la url restituisce e lo trasformo in immagine e la mostro

    Sto leggendo varie cose ma trovo solo componenti activex da usare e spesso con le windows form non pe ril web.

  9. #9
    Per il web è difficile trovare alcunché, dovresti richiamare un motore di rendering (Gecko/WebKit/...) sulla pagina in questione, far renderizzare la pagina e ottenerne un'immagine... decisamente poco fattibile per il web.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Utente di HTML.it L'avatar di mexican
    Registrato dal
    Oct 2001
    residenza
    cava de tirreni
    Messaggi
    3,541
    Originariamente inviato da MItaly
    Per il web è difficile trovare alcunché, dovresti richiamare un motore di rendering (Gecko/WebKit/...) sulla pagina in questione, far renderizzare la pagina e ottenerne un'immagine... decisamente poco fattibile per il web.
    Io ho trovato delle librerie ma sono tutte a pagamento.
    Che vanno bene per il web. Altrimenti avevo trovato una cosasina ma usava un .exe e se non hai un server tuo non è facile da usare:-)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.