Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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()




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: 6299
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 ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
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? ?

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