Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Problema For continuo [vb.net]
Forum - C# / VB.NET - Problema For continuo [vb.net]

Avatar
DavidP (Normal User)
Pro


Messaggi: 87
Iscritto: 31/08/2009

Segnala al moderatore
Postato alle 12:07
Martedì, 24/02/2015
Ho creato un programma, per avviare programmi\foto\ecc. installati nel pc con pressione di tasti (ovvero scorciatoie), per meglio dire:
es. con Alt + F avvio firefox
con ALT+V avvio video e foto, perche alla pressione di un tasto puo' essere associato anche più di un eseguibile\file.
Ora sta di fatto che avvio il controllo degli elementi presenti il listbox2 che a sua volta e presente in un timer a 150ms  si impalla soprattutto con file excel word.Li avvia di continio
Codice sorgente - presumibilmente VB.NET

  1. If ListBox2.Items.Count >= 1 Then
  2.             For i As Integer = 0 To ListBox2.Items.Count - 1
  3.                 ListBox2.SelectedIndex = i
  4.                 Process.Start(ListBox2.SelectedItem)
  5.                 On Error GoTo a
  6.             Next
  7.  
  8.         End If
  9. a:      ListBox2.Items.Clear()





DavidP
PM Quote
Avatar
darioza (Normal User)
Pro


Messaggi: 104
Iscritto: 06/10/2014

Segnala al moderatore
Postato alle 13:02
Martedì, 24/02/2015
Ciao!
A parte sconsigliarti i goto, ma ti fa errore solo con i Word?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:09
Martedì, 24/02/2015
Non si capisce molto da quello che hai tentato di spiegare.

Comunque, se il codice è in un timer, devi bloccare il timer prima di eseguirlo e avviarlo nuovamente alla fine.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
DavidP (Normal User)
Pro


Messaggi: 87
Iscritto: 31/08/2009

Segnala al moderatore
Postato alle 16:14
Martedì, 24/02/2015
Da problemi più che con Word li da con excel per gli altri programmi non da problemi fino ad Ora. Come posso staccare e riattare il timer in quanto deve intercettare la pressione di tasti in quanto tale programma va eseguito in background? ?


DavidP
PM Quote
Avatar
darioza (Normal User)
Pro


Messaggi: 104
Iscritto: 06/10/2014

Segnala al moderatore
Postato alle 17:27
Martedì, 24/02/2015
Secondo me, Cambiare completamente approccio, gestire l'evento piuttosto che aspettarlo, sarebbe meglio.

Nessuno ti ha suggerito qualcosa del genere, in pseudo:
Codice sorgente - presumibilmente VB.NET

  1. FUNZIONE TIMER(){
  2. timer.stop()
  3.     If ListBox2.Items.Count >= 1 Then
  4.                 For i As Integer = 0 To ListBox2.Items.Count - 1
  5.                     ListBox2.SelectedIndex = i
  6.                     Process.Start(ListBox2.SelectedItem)
  7.                     On Error GoTo a
  8.                 Next
  9.      
  10.             End If
  11.     a:      ListBox2.Items.Clear()
  12. timer.start()
  13. }



Anche se, parer mio, non dipende da questo il problema...
bisognerebbe però ricordare (ma io preferisco ascoltare il caro Albert ) quanto "dura" l'evento scatenante..
Nessuno (nome dell'utente) ti sta dicendo che secondo lui in 150ms l'evento viene intercettato piu volte, ma se così fosse, si aprirebbero 3- 5 - 12 -18 finestre, non una serie infinita di queste...

(Se questo costituisce un esercizio oppure la voglia di fare qualcosa del genere, ok, altrimenti, ci sono tante cose simili e funzionanti in giro per la rete, se l'obbiettivo fosse solo nell'utilità del tool)

PM Quote