Ma con la Try cosa fa?
"Handle non valido"?
Comunque, l'applicazione che stai eseguendo si trova per caso su un disco di rete?
Amaro C++, il gusto pieno dell'undefined behavior.
Originariamente inviato da MItaly
"Handle non valido"?
Comunque, l'applicazione che stai eseguendo si trova per caso su un disco di rete?
...assolutamente NO! si trova in rete solo il DB dove in una tab. ci sono alcuni nomi dei processi ...e cmq il tick non centra nulla con l'unico oggetto db che si trova in rete ...i richiami dei valori DB lo foccio addirittura dal form_load dove riverso tutto in un array dinamico (ARRAYLIST)
AAAHHH... FINALMENTE!
...mentre rispondevo a MItaly mi è uscito l'errore xrò in modalita MsgBox() è dice in effetti che Handle non è valido! ...di conseguenza basta che tolgo il mex è il programmino penso che dovrebbe fungere SPERIAMO!
Cmq pensandocci bene potrebbe essere che uso 2 tick in un form? L'altro tick lo uso per poter chiudere le applicazioni se non hanno fatto il login questo è il codice:
Private Sub taskmanager_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles taskmanager.Tick
apu = ""
myProcesses = Process.GetProcesses()
For Each myProcess In myProcesses
Dim contaProg As Integer = 0
While Not ProgrammiTab.Count = contaProg
If myProcess.ProcessName = ProgrammiTab.Item(contaProg) Then
myProcess.CloseMainWindow()
MsgBox("Inserire Login e Password prima di aprire l'applicazione!")
End If
contaProg += 1
End While
Next
End Sub
Ho lasciato il PC acceso tutta la notte
COSA ESTREMAMENTE IMPORTANTE
...ho risolto con il problema utilizzando i Vs consigli!![]()
Cmq sono di coccio e vorrei capire se l'errore è per colpa mia o VB.Net è bacato !Grazie oregon!![]()
Ti consiglio di assegnare il nome del processo ad una stringa all'interno di un blocco Try ... Catch e di usare la stringa in ogni punto in cui ti serve il nome del processo.
A questo punto vorrei sbattere la testa per migliorare la mia professionalità e capire cos'è che non va in questo codice ...non voglio che il Tay sia una toppa per la mia professionalità, ma vorrei solo capire quello che è successo a questo codice!
QUALCHE VOLONTARIO CHE PUO' RISPONDERMI?
...potrebbe essere che uso 2 tick in un form? L'altro tick lo uso per poter chiudere le applicazioni se gli utenti non hanno effettuato il login
Cmq questo è il codice del tick-login:
Private Sub taskmanager_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles taskmanager.Tick
apu = ""
myProcesses = Process.GetProcesses()
For Each myProcess In myProcesses
Dim contaProg As Integer = 0
While Not ProgrammiTab.Count = contaProg
If myProcess.ProcessName = ProgrammiTab.Item(contaProg) Then
myProcess.CloseMainWindow()
MsgBox("Inserire Login e Password prima di aprire l'applicazione!")
End If
contaProg += 1
End While
Next
End Sub
Il tray non e' una toppa. E' il metodo che devi utilizzare per intercettare gli errori.
Alcuni errori sono 'irrecuperabili' perche' non ci puoi fare niente e in certi casi possono essere ignorati.
E' il tuo caso.
Se il tuo programma non puo' accedere ad un processo per questioni di 'autorizzazioni', non ci puoi fare nulla se non ignorare la faccenda.
Non c'entrano i bug di .NET (che sebbene ci siano, non in questo caso ...).
Non puoi ottenere determinati permessi perche' alcuni processi girano con autorizzazioni molto elevate che solamente il sistema a livello kernel possiede. Dovresti far girare il tuo programma con autorizzazioni del tipo "Local System" ma in questo caso dovrebbe essere un pezzo del sistema operativo o un device driver ...
ok!
![]()
...farò una ricerca su "autorizzazioni del tipo Local System" per capire su cosa si tratta...
NON FINISCE QUI...![]()
voglio capire...
voglio imparare....
x fare meno guai!