Como insertar una pausa en un archivo batch

En ocasiones necesitamos insertar una pausa de algunos segundos en nuestros archivos batch. Para ello disponemos de un comando estándar en windows 7 y windows 8. Para windows XP y Vista usaremos otra orden. Windows 7 y 8. Para windows 7 y 8 disponemos del comando estándar timeout con esta sintaxis: timeout /t <tiempo_en_segundos> [/nobreak] El parámetro nobreak se usa para ignorar las pulsaciones de teclas del usuario. Un ejemplo. Cuando se arranca un equipo con windows 7 se necesita crear una unidad de red a una carpeta compartida por un servidor. Para ello se crea un fichero red.cmd que será ejecutado al inicio del sistema para este cometido. Pausa de 30 segundos en windows 7 y 8 (archivo red.cmd) MS DOS @echo off echo Esperando para conectar con el servidor de recursos compartidos... timeout /t 30 /nobreak net use s: /delete net use s: \\srvusers\contabilidad /USER:SRVUSERS\auxconta1 Conta$12 12345 @echo offecho Esperando para conectar con el servidor de recursos compartidos...timeout /t 30 /nobreaknet use s: /deletenet use s: \\srvusers\contabilidad /USER:SRVUSERS\auxconta1 Conta$12 Windows XP y Vista. Para XP y Vista no disponemos del comando timeout. En su lugar podemos usar el comando ping con una dirección de bucle invertido que tiene un retraso aproximado de un segundo entre cada ping. Esta sería la sintaxis para este comando: ping -n <numero_de_pings> 127.0.0.1 El paramentro -n especifica el número de pings a realizar. Se deseamos una demora de unos 15 segundos, pondremos 15 en el parámetro -n. Un ejemplo. Cuando arranca un equipo con windows xp debe ejecutarse un programa después de que la red de xp se haya  inicializado. La red...

Visual Basic 6: generar números aleatorios

Para generar números aleatorios evitando repeticiones de secuencias en Visual Basic 6, hay que utilizar esta instrucción: Randomize Timer (Esta instrucción debe estar antes de la función Rnd()) Generar un número entre 0 y n: minumero = Int ( Rnd ( ) x ( n+1 ) ) Generar un número entre 1 y n: minumero = 1 + Int ( Rnd ( ) x n ) Generar un número entre m y n: minumero = m + Int ( Rnd ( ) x ( n – m + 1 ) ) Imprimir | PDF |...

Crystal Reports no imprime el último registro

A veces Crystal Reports no muestra el último registro en un informe después de rellenar correctamente la tabla subyacente del report. Cuando esto ocurre y pulsamos varias veces el botón Refresh de la presentación preliminar del informe, el último registro se hace visible. Este raro comportamiento tiene sencilla solución. Cuando el informe utiliza una tabla que poblamos antes de abrirlo, se debe ejecutar una SQL de actualización después de enviar los datos en la tabla, siguiendo este patrón: UPDATE  tabla_del_informe SET ultimo_campo_de_la_tabla = valor_del_campo WHERE campo_clave = clave_del_ultimo_registro_añadido Con esto el problema queda resuelto. Imprimir | PDF |...

Visual Basic .NET: llenar un combobox con un datareader

Se que la mayoría de vosotros llenáis un combobox con un datatable. Hoy vamos a ver como llenar un combobox con una clase y un datareader. El objetivo es crear un método publico que rellene cualquier combobox de un formulario, enviandole una SQL que recuperará los datos deseados, y la referencia del combobox que queremos llenar. La única condición es que la SQL solo tendrá dos campos. El primero será el código, y el segundo la descripción mostrada en la lista del combobox. En primer lugar declararemos una clase pública con dos propiedades para almacenar el código y la descripción, obtenidos desde el datareader. Esta clase rellenará un arraylist que más tarde se utilizará como origen de datos del combobox que queremos poblar. El segundo paso consistirá en declarar el procedimiento público que será capaz de rellenar cualquier combobox. Cuando invoquemos a este procedimiento, enviaremos la referencia del combo a rellenar, y la SQL que obtendrá los datos que deseamos. Para no extenderme demasiado, supongamos que tenemos un combobox llamado ComboClientes que queremos rellenar con el código y nombre de una tabla de clientes de SQL Server. Debajo os dejo el código necesario para utilizar este sistema con Visual Basic .Net. Llenar un combobox con un datareader en Visual Basic .NET Visual Basic .NET Imports System.Data.SqlClient Module ProcedimientosPublicos Public Class ElementoCombo Private CodigoElemento As String Private TextoElemento As String Public Sub New(ByVal NuevoCodigo As String, ByVal NuevoTexto As String) CodigoElemento = NuevoCodigo TextoElemento = NuevoTexto End Sub Public ReadOnly Property Codigo() As String Get Return CodigoElemento End Get End Property Public ReadOnly Property Texto() As String Get Return TextoElemento...

Visual Basic .NET: crear un pdf desde Crystal Reports

Hoy vamos a ver que fácil es crear un archivo pdf desde un informe de cystal reports .net. Para ello utilizaremos una función a la que enviaremos la ruta y el nombre del informe de crystal reports, el datatable usado como origen de datos en el informe, y la ruta y nombre del archivo pdf a crear. En el código de ejemplo mostrado debajo hacemos uso de un botón para inicializar las variables con las rutas del informe y del archivo pdf. También poblaremos el datatable que se utiliza como origen de datos del report. Crar un pdf con Crystal Reports .NET Visual Basic .NET Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.Shared Imports System.Data.SqlClient Public Class Form1 Private Sub btnCrearPdf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviar.Click Dim rpt as string = "C:\Rpts\Clientes.rpt" Dim pdf as string = "C:\Temp\ClientesIbericos.pdf" Dim dtClientes as datatable = new Datatable Dim daClientes as SqlDataAdapter = New SqlDataAdapter("SELECT * FROM Clientes ORDER BY Nombre", _ "Data Source=SQLSERVER\sqlexpress;Initial Catalog=dbTest" & _ ";User Id=sa;Password=contraseña_sa") daClientesFillSchema(dtClientes, SchemaType.Source) daClientes.fill(dtClientes) RptToPdf(rpt, dtClientes, pdf) End Sub Private Sub RptToPdf(ByVal RutaRpt As String, _ ByVal DataTableReport As DataTable, _ ByVal RutaPdf As String) Dim crExportOptions As CrystalDecisions.Shared.ExportOptions = _ New CrystalDecisions.Shared.ExportOptions Dim crDiskFileDestinationOptions As CrystalDecisions.Shared.DiskFileDestinationOptions = _ New CrystalDecisions.Shared.DiskFileDestinationOptions Dim rpt As CrystalDecisions.CrystalReports.Engine.ReportDocument = _ New CrystalDecisions.CrystalReports.Engine.ReportDocument 'Abrir informe, establecer la conexión, filtrar registros, y generar el pdf With rpt .Load(RutaRpt) .DataSourceConnections(0).SetConnection("SQLServer\sqlexpress", "dbTest", "sa", "contraseña_sa") .SetDataSource(DataTableReport) .DataDefinition.RecordSelectionFormula = "{Clientes.PaisId} = '034'" crDiskFileDestinationOptions.DiskFileName = RutaPdf With crExportOptions .ExportDestinationType = ExportDestinationType.DiskFile .ExportFormatType = ExportFormatType.PortableDocFormat .DestinationOptions = crDiskFileDestinationOptions End With End With Try rpt.Export(crExportOptions) Catch ex As Exception MessageBox.Show(ex.Message, "Error al crear pdf", MessageBoxButtons.OK) Finally...

Visual Basic .NET: enviar correo

Si te ves en la necesidad de enviar correo usando visual basic .net, el siguiente ejemplo te puede servir de ayuda. Lo primero que hay que hacer es importar una librería a nuestro proyecto con la esta declaración: Imports System.Web.Mail La mayor parte de código se puede insertar en el evento click de un botón destinado a enviar el mensaje de correo. Fíjate en el siguiente código  y verás que no resulta difícil enviar correo con vb.net. Correo con Visual Basic .NET Visual Basic .NET Imports System.Web.Mail Public Class Formulario1 Private Sub btnEnviarCorreo_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnMail.Click Dim smtp As New System.Net.Mail.SmtpClient Dim correo As New System.Net.Mail.MailMessage Dim adjunto As System.Net.Mail.Attachment With smtp .Port = 25 .Host = "smtp.elrincondelprogramador.net" .Credentials = New System.Net.NetworkCredential("usuario-smtp", "clave-smtp") .EnableSsl = False End With adjunto = New System.Net.Mail.Attachment("C:\Temp\Adjunto.pdf") With correo .From = New System.Net.Mail.MailAddress("mail@elrincondelprogramador.net") .To.Add("destinatario@sudominio.com") .Subject = "Asunto del correo" .Body = "<strong>Texto del mensaje de correo</strong>" .IsBodyHtml = True .Priority = System.Net.Mail.MailPriority.Normal .Attachments.Add(adjunto) End With Try smtp.Send(correo) MessageBox.Show("Su mensaje de correo ha sido enviado.", _ "Correo enviado", _ MessageBoxButtons.OK) Catch ex As Exception MessageBox.Show("Error: " & ex.Message, _ "Error al enviar correo", _ MessageBoxButtons.OK) End Try End Sub End Class 123456789101112131415161718192021222324252627282930313233343536373839404142 Imports System.Web.Mail Public Class Formulario1     Private Sub btnEnviarCorreo_Click(ByVal sender As System.Object, _                                      ByVal e As System.EventArgs) Handles btnMail.Click         Dim smtp As New System.Net.Mail.SmtpClient        Dim correo As New System.Net.Mail.MailMessage        Dim adjunto As System.Net.Mail.Attachment         With smtp            .Port = 25            .Host = "smtp.elrincondelprogramador.net"            .Credentials = New System.Net.NetworkCredential("usuario-smtp", "clave-smtp")            .EnableSsl = False        End With        adjunto = New System.Net.Mail.Attachment("C:\Temp\Adjunto.pdf")        With correo            .From = New System.Net.Mail.MailAddress("mail@elrincondelprogramador.net")            .To.Add("destinatario@sudominio.com")            .Subject = "Asunto del correo"            .Body = "<strong>Texto del mensaje de correo</strong>"            .IsBodyHtml = True            .Priority = System.Net.Mail.MailPriority.Normal            .Attachments.Add(adjunto)        End With         Try            smtp.Send(correo)            MessageBox.Show("Su mensaje de correo ha sido...

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies. Puede obtener más información sobre las cookies aquí. ACEPTAR

Aviso de cookies