Saludos.
Mi consulta es la siguiente: desarrolle una aplicacion en Visual Studio 2005, la cual se encarga de accionar por medio del puerto LPT una tarjeta logica diseñada por mi persona para activar un timbre de 110VAC, esta activacion se realiza por medio de una programacion manual por pantalla. Yo desarrolle la aplicacion en Windows 7 y la termine sin ningun problema y funcionando 100%, pero cuando me toco desarrollar el SETUP e instalarlo en otra maquina me dio un error de funcionamiento, resulta ser que cuando selecciono el valor del tiempo que se queda encendido el timbre, este siempre se activa solo 1 segundo, asi le coloque 60 segundos este solo se activa por 1 segundo. E realizado una serie de pruebas en modo Debug y me doy cuenta que la rutina de retraso que estoy usando no me esta funcionando. A continuacion les dejo la parte del codigo fuente que me esta dando problemas para ver si me puedne ayudar.
Esta rutina se encarga de realizar una comparacion de los valores de dos TextBox y si son iguales se va a realizar una actividad en BackGround:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label4.Text = Format(TimeOfDay, "H:m:ss")
TestWorker = New System.ComponentModel.BackgroundWorker
TestWorker.WorkerReportsProgress = True
TestWorker.WorkerSupportsCancellation = True
If h378 = 0 Then
PictureBox4.Visible = False
Label8.Visible = True
Label14.Visible = False
End If
If Label4.Text = TextBox1.Text Then
PictureBox4.Visible = True
Label14.Visible = True
Label8.Visible = False
PortOut(&H378, 1)
h378 = 1
NotifyIcon1.ShowBalloonTip(5000, "Atención", "Timbre Activado", ToolTipIcon.Info)
TestWorker.RunWorkerAsync()
End If
Luego de que corre esta rutina y las dos etiquetas comparadas tienen el mismo valor se va a realizar la actvidad BackGround la cual esta definida por lo siguiente:
Private Sub TestWorker_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles TestWorker.DoWork
Dim retraso As Long
retraso = (NumericUpDown13.Value * 1000) + GetTickCount&
While (retraso >= GetTickCount&)
End While
PortOut(&H378, 0)
h378
End Sub
Es esta la rutina que me funciona en Windows 7 pero en XP no, ese retraso, solo me lo toma como un segundo, aunque los valores del NUmericUpdpwn esten seteados en 1 o 60, no me realizar el retraso, pero en Windows 7 si lo hace perfectamente.
Necesito ayuda por favor.