Autor
|
Tema: timer + variable (Leído 4,749 veces)
|
mojolloyo20
Desconectado
Mensajes: 208
en esta vida nunca te acostaras sin saber nada nue
|
hola amigos espero que el titulo este bien.
bueno escribo esto por que tengo problemas,para hacer que mi programa
realice cada x tiempo una funcion diferente.
he trabajado anterior mente con timers pero de 1 en uno y este proyecto lleba unos 6.
ayer hice pruebas he iban todos bien y guarde los canbios y me acoste.
y hoy ya no funcaba 2 timer y pude areglar 1.
asin llevo ya tiempo y ya no se como darle mas bueltas.
bueno os dire como lo ago,aver en que fallo.
--------------------------------------------------------------- este proyecto se supone que abriria NOTEPAD cada 5 minutos,regedit cada 7 y el explorer cada 4 minutos.
empezamos declarando la funcion ShellExecute y declarando la variable minuto.
Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _ ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Dim minito As Long
Private Sub Form_Load()----->cuando se inicie el programa Timer1.Interval = 60000-------->timer1 lo ponemos declarado con un intervalo de =milisegundo Timer2.Interval = 60000 Timer3.Interval = 60000 Timer1.Enabled = True-------->activamos el timer1 empieza la accion End Sub
Private Sub Timer1_Timer() If "5" Then----->cada 5 minutos Call ShellExecute(Me.hwnd, "Open", ("C:\WINDOWS\NOTEPAD.EXE"), "", "", 1)---- --->ejecutamos NOTEPAD.EXE minuto = 0------->ponemos el contador a 0 minuto = minuto + 1--------> se añade un contador End If Timer2.Enabled = True----->ejecutamos timer 2 End Sub
este sin comentarios------>
Private Sub Timer2_Timer() If "7" Then Call ShellExecute(Me.hwnd, "Open", ("C:\WINDOWS\regedit.exe"), "", "", 1) minuto = 0 minuto = minuto + 1 End If Timer3.Enabled = True End Sub
Private Sub Timer3_Timer() If "4" Then Call ShellExecute(Me.hwnd, "Open", ("C:\WINDOWS\explorer.exe"), "", "", 1) minuto = 0 minuto = minuto + 1 End If Call Form_Load ejecutamos de nuevo la parte del codigo que hay en el frond.
End Sub
le he dado mil bueltas al codigo.
a las 00:55 lo ejecute y a las 00:56 me ejecuto los 3 al mismo tiempo casi por milisegundos.
aver quien me puede giar gracias y salu2
|
|
|
En línea
|
Lo reconozco fumo porros a diario me fumo uno y es como poner la radio pero por dentro de mi amarga cabeza siempre tan sola y tan llena de tristeza Me salen la s canciones que a mí más me molan las musiquillas que ha mí más me motivan las amarguras se vuelven amapolas y las tristezas me alegran la vida Anda dame que fume porque me siento sólo dame de fumar porque no quiero estar triste
|
|
|
Chefito
|
Pufffff.....no te lies tanto con algo tan sencillo. El codigo con un solo timer sería algo así: Private Sub Form_Load() Timer1.Interval = 60000 End Sub
Private Sub Timer1_Timer() Static Notepad As Integer, Regedit As Integer, Explorer As Integer If Notepad = 5 Then Shell "notepad" Notepad = 0 End If If Regedit = 7 Then Shell "regedit" Regedit = 0 End If If Explorer = 3 Then Shell "explorer" Explorer = 0 End If Notepad = Notepad + 1 Regedit = Regedit + 1 Explorer = Explorer + 1 End Sub
Saludos.
|
|
|
En línea
|
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada
|
|
|
juancho77
Desconectado
Mensajes: 455
rie con demencia
|
minuto = 0 minuto = minuto + 1 =
|
|
|
En línea
|
|
|
|
Chefito
|
Ya te digo juancho77 . Y los if "5" then....... dios.....eso hace daño a la vista . Debes mirarte algo mas el lenguaje mojolloyo20, que estas un poco liadillo. Saludos.
|
|
|
En línea
|
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada
|
|
|
krackwar
Desconectado
Mensajes: 900
|
primero que nada la variable no es minuto si no minito el code(si querias poner minuto ponelo) puede quedar asi Private Sub Form_Load() Timer1.Interval = 60000 minuto = 0 End Sub Private Sub Timer1_Timer() if minuto = 4 then shell ("explorer.exe") if minuto = 5 then shell ("notepad.exe") if minuto = 7 then shell ("regedit.exe") minuto = 0 end if minuto = minuto + 1 End Sub
|
|
|
En línea
|
Mi blogBienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran. El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
|
|
|
mojolloyo20
Desconectado
Mensajes: 208
en esta vida nunca te acostaras sin saber nada nue
|
perdonemen amigos,ami me poneis un leon a 2 cm y no lo veo la verdad es que estoy aprendiendo solo y estoy muy pegado pero que muy. me hincho de leer, de probar, de darle vultas. y darles muchas gracias por contestar y aportar su tiempo. krackwar me podias dar un o unos link bueno, asin sobre lenguaje, para ir aprendiendo. no suelo usar vb,solo cuando me aparece algun proyecto en mente. tonces aprendo por el camino y muy dificil y acompañado del ingles. he visto mucha veces buena info pero los idimas son fundamentales. lo de hacer daño a la vista no lo entendi muy bien,pero me lo tomo como que el codec me quedo muy feo y de grandes bytes pero no me ofendo en y decir a juancho77 sin ofender, que tampoco es para poner esa cara jajajaj. si no me equivoco de nuevo a lo que me referia yo era algo asin: Private Sub Timer1_Timer() If minuto = "5" Then----->cada 5 minutos Call ShellExecute(Me.hwnd, "Open", ("C:\WINDOWS\NOTEPAD.EXE"), "", "", 1)---- --->ejecutamos NOTEPAD.EXE minuto = 0------->ponemos el contador a 0 minuto = minuto + 1--------> se añade un contador End If Timer2.Enabled = True----->ejecutamos timer 2 End Sub bueno y muchas gracias de nuevo,ya mañana seguire haciendo pruebas. tendre que hacer una 3º version jajajaja. un salu2 amigos.
|
|
|
En línea
|
Lo reconozco fumo porros a diario me fumo uno y es como poner la radio pero por dentro de mi amarga cabeza siempre tan sola y tan llena de tristeza Me salen la s canciones que a mí más me molan las musiquillas que ha mí más me motivan las amarguras se vuelven amapolas y las tristezas me alegran la vida Anda dame que fume porque me siento sólo dame de fumar porque no quiero estar triste
|
|
|
krackwar
Desconectado
Mensajes: 900
|
explicame bien lo que quieres quieres que se ejecute el explorer despues que pasen 5 minutos i se ejecute el notepad i luego pasen 7 minutos mas i se ejecute el regedit en total el tiempo que ocupas es de 16 minutos o quieres que todo se haga en 7 minutos? bueno si quieres lo del primer ejemplo seria asi Private Sub Form_Load() dim bloqueo1 dim bloqueo2 Timer1.Interval = 60000 minuto = 0 End Sub Private Sub Timer1_Timer() if minuto = 4 and bloqueo1 = "no" then shell ("explorer.exe") bloqueo1 = "si" minuto = 0 end if if minuto = 5 and bloqueo2 = "no" then shell ("notepad.exe") bloqueo2= "SI" minuto = 0 end if if minuto = 7 then shell ("regedit.exe") minuto = 0 bloqueo1 = "no" bloqueo2 = "no" end if minuto = minuto + 1 End Sub
perdon si yo me equivoque pero no puedo provar el code ya que no tengo en este momento el vb6 links para aprender vb: http://foro.elhacker.net/index.php/topic,68352.0.htmlhttp://invisiblehack.mforos.com/1109918/6729829-inicias-en-vb6/
|
|
« Última modificación: 7 Marzo 2008, 03:00 am por krackwar »
|
En línea
|
Mi blogBienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran. El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
|
|
|
Chefito
|
este proyecto se supone que abriria NOTEPAD cada 5 minutos,regedit cada 7 y el explorer cada 4 minutos.
Yo entiendo eso como se lo puse al principio. Por cierto krackwar, cuidado con las variables. Las que declaras en los procedimientos son locales y cuando sales del procedimiento pierden su valor. Mira dim bloqueo1,bloqueo2....deben de estar fuera para hacerlas globales. Y tampoco has declarado minuto ni como global ni como estatica, o sea que su valor siempre sera 0 y 1 justo al final del timer . Saludos.
|
|
|
En línea
|
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada
|
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
Disculpen mi intromisión pero llamo mi atención... En su primer post mojolloyo20 usa tres timer para ejecutar tres aplicaciones en los minutos 4, 5 y 7 por separado, eso me da a entender que quiere ejecutarlos por grupo de 3 minutos de diferencia y por aplicación, por dos minutos, en ese sentido, este seria la manera mas simplificada de hacerlo: Option Explicit Dim Minuto As Integer Private Sub Form_Load() Timer1.Interval = 60000 Minuto = 0 End Sub Private Sub Timer1_Timer() Select Case Minuto Case 4: Shell ("explorer.exe") Case 5: Shell ("notepad.exe") Case 7: Shell ("regedit.exe"): Minuto = 0 End Select Minuto = Minuto + 1 End Sub
Cabe acotar que errores como estos solo confunden mas al principiante: Private Sub Form_Load() dim bloqueo1 --> dentro del sub? dim bloqueo2 --> ||
if minuto = 5 then and bloqueo2 = "no" then
Hay que asegurarse de lo que se esta postiando... por lo demás todo esta bien... ¡S4lu2!
|
|
« Última modificación: 6 Marzo 2008, 05:53 am por C@ss¡@n¡ »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
thead o timer?
Java
|
bash
|
3
|
2,482
|
9 Diciembre 2011, 14:42 pm
por bash
|
|
|
modificar un timer a nanosegundos
Programación Visual Basic
|
sesar58
|
5
|
3,879
|
26 Marzo 2013, 13:29 pm
por 79137913
|
|
|
Apagar Timer con GetPixelColor
Programación Visual Basic
|
igustin
|
2
|
1,635
|
3 Febrero 2014, 01:33 am
por igustin
|
|
|
timer + webbrowser en vb.net
.NET (C#, VB.NET, ASP)
|
dega1980
|
3
|
2,763
|
14 Abril 2014, 12:32 pm
por Eleкtro
|
|
|
Timer en C#
.NET (C#, VB.NET, ASP)
|
Fixxed
|
1
|
2,264
|
22 Marzo 2016, 07:59 am
por Eleкtro
|
|