• Viernes 3 de Mayo de 2024, 17:17

Autor Tema:  Me funciona en Windows 7 pero en XP no... que sera???  (Leído 796 veces)

Davidepr

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Me funciona en Windows 7 pero en XP no... que sera???
« en: Sábado 6 de Marzo de 2010, 18:58 »
0
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:

Código: vb.net
  1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  2.         Label4.Text = Format(TimeOfDay, "H:m:ss")
  3.         TestWorker = New System.ComponentModel.BackgroundWorker
  4.         TestWorker.WorkerReportsProgress = True
  5.         TestWorker.WorkerSupportsCancellation = True
  6.  
  7.         If h378 = 0 Then
  8.             PictureBox4.Visible = False
  9.             Label8.Visible = True
  10.             Label14.Visible = False
  11.         End If
  12.         If Label4.Text = TextBox1.Text Then
  13.             PictureBox4.Visible = True
  14.             Label14.Visible = True
  15.             Label8.Visible = False
  16.             PortOut(&H378, 1)
  17.             h378 = 1
  18.             NotifyIcon1.ShowBalloonTip(5000, "Atención", "Timbre Activado", ToolTipIcon.Info)
  19.             TestWorker.RunWorkerAsync()
  20.         End If
  21.  

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:

Código: vb.net
  1. Private Sub TestWorker_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles TestWorker.DoWork
  2.         Dim retraso As Long
  3.         retraso = (NumericUpDown13.Value * 1000) + GetTickCount&
  4.         While (retraso >= GetTickCount&)
  5.         End While
  6.         PortOut(&H378, 0)
  7.         h378
  8. End Sub
  9.  

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.