¿Como hacer que un Private Sub haga dos procesos en orden?

Iniciado por GonzaFz, 9 Agosto 2011, 19:21 PM

0 Miembros y 1 Visitante están viendo este tema.

GonzaFz

Bueno mi pregunta es la del titulo, quiero hacer un Screenshooter que primero saque la foto y luego la guarde pero todo en un mismo boton haciendo que realize esto precionando una vez. Mi codigo es:

Public Function SaveScreen(ByVal theFile As String) As Boolean
        Try
            Dim data As IDataObject = Clipboard.GetDataObject()

            If data.GetDataPresent(GetType(System.Drawing.Bitmap)) Then
                Dim bmp As Bitmap = CType(data.GetData(GetType(System.Drawing.Bitmap)), Bitmap)
                bmp.Save(theFile, Imaging.ImageFormat.Png)
            End If
            Clipboard.SetDataObject(0)      'save memory by removing the image from the clipboard
            Return True
        Catch ex As Exception
            Return False
        End Try

    End Function


    Private Sub screenshot_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles screenshot.Click
        SendKeys.Send("%{PRTSC}")           '<alt + printscreen>
        SaveScreen("C:\Galaxy Pictures\Img.jpeg")


    End Sub


Osea yo quiero que entre:
        SendKeys.Send("%{PRTSC}")           '<alt + printscreen>
        SaveScreen("C:\Galaxy Pictures\Img.jpeg")

Primero haga el SendKeys.Send y luego de eso recien se procese SaveScreen. Me imagino que debe aver algun comando como "Wait" para que haga primero algo y luego otra cosa en un mismo Private Sub.
Espero que me puedan ayudar.

neoncyber

Hola, si te entendi, quieres q un proceso termine para empezar otro, verdad?
bueno, lo que puedes hacer es ver algo de programacion asincrona, de este modo podras lograr esto, si utilizas winforms o algo diferente a wpf, puedes revisar el delegadp MethodInvoker

Saludos
Código (python) [Seleccionar]

#!/usr/bin/python
print "Visit:"
print "http:\\donkeysharp.blogspot.com"