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 - [VB.Net] Errore ...enumerare i moduli?
Forum - C# / VB.NET - [VB.Net] Errore ...enumerare i moduli?

Avatar
jamby (Normal User)
Newbie


Messaggi: 12
Iscritto: 08/10/2006

Segnala al moderatore
Postato alle 21:28
Mercoledì, 06/12/2006
Ragazzi questa volta penso che sono arrivato al limite sono più di 15 giorni che mi sbatto!

Ho creato un form inserendogli un oggetto di tipo Tick, il quale mi permette di verificare se un utente ha aperto un

determinato programma.

Il codice che ho scritto nel Tick è il seguente:


    'dichiaro gli oggetti a livello di classe in modo che le posso utilizzare/richiamare in altre procedure o funzioni!
    Dim programmi As New ArrayList

    Dim myProcesses() As Process
    Dim myProcess As Process

......
.........
....
.....

Private Sub secondi_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles secondi.Tick


            'inserisco nella'array programmi le applicazioni utilizzate
            Dim NomeProcesso As String

            myProcesses = Process.GetProcesses()

            For Each myProcess In myProcesses

                contaProg = 0
                For contaProg = 0 To (ProgrammiTab.Count - 1)
                    If myProcess.ProcessName = ProgrammiTab.Item(contaProg) Then

                        ' Contains mi permette di verificare se nell'array esiste già il nome processo stringa
                        If Not programmi.Contains(myProcess.ProcessName) Then
                            programmi.Add(myProcess.ProcessName)
                        End If



                    End If
                Next

            Next


End Sub



PREMETTO CHE nell''array ProgrammiTab ho dichiarato tutti i programmi che dovranno essere controllati!

...avvivo al dunque! Il programma funziona ma solo per pochi minuti perchè mi esce il seguente errore:

Eccezione non gestita nella'applicazione. Fare clic su Continua er ignorare l'errore e tentare di proseguire. Fare clic su

esci per arrestare l'applicazione immediatamente.

Impossibile enumerare i moduli di processo.

...se clicco su dettagli mi esce:

Le informazioni su come richiamare il debug JIT (Just-In-Time) anziché questa finestra
sono riportate in fondo al messaggio.

************** Testo dell'eccezione **************
System.ComponentModel.Win32Exception: Handle non valido
   at System.Diagnostics.NtProcessManager.GetModuleInfos(Int32 processId)
   at System.Diagnostics.ProcessManager.GetModuleInfos(Int32 processId)
   at System.Diagnostics.Process.get_Modules()
   at System.Diagnostics.Process.get_MainModule()
   at System.Diagnostics.Process.get_ProcessName()
   at InternetPoint.home.secondi_Tick(Object sender, EventArgs e) in C:\Documents and

Settings\server\Documenti\InternetPoint\InternetPointClient\home.vb:line 464
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr idEvent, IntPtr dwTime)


************** Assembly caricati **************
mscorlib
    Versione assembly: 1.0.5000.0
    Versione Win32: 1.1.4322.573
    Base di codice: file:///c:/windows/microsoft.net/framework/v1.1.4322/mscor ...
----------------------------------------
InternetPoint
    Versione assembly: 1.0.2529.31383
    Versione Win32: 1.0.2529.31383
    Base di codice: file:///C:/Documents%20and%20Settings/server/Documenti/Int ...

InternetPoint.exe
----------------------------------------
System.Windows.Forms
    Versione assembly: 1.0.5000.0
    Versione Win32: 1.1.4322.573
    Base di codice: file:///c:/windows/assembly/gac/system.windows.forms/1.0.5 ....

dll
----------------------------------------
System
    Versione assembly: 1.0.5000.0
    Versione Win32: 1.1.4322.573
    Base di codice: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c5 ...
----------------------------------------
System.Drawing
    Versione assembly: 1.0.5000.0
    Versione Win32: 1.1.4322.573
    Base di codice: file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0_ ...
----------------------------------------
Microsoft.VisualBasic
    Versione assembly: 7.0.5000.0
    Versione Win32: 7.10.3052.4
    Base di codice: file:///c:/windows/assembly/gac/microsoft.visualbasic/7.0. ...

.dll
----------------------------------------
ADODB
    Versione assembly: 7.0.3300.0
    Versione Win32: 7.10.3077
    Base di codice: file:///c:/windows/assembly/gac/adodb/7.0.3300.0__b03f5f7f ...
----------------------------------------
SYSTEM.WINDOWS.FORMS.resources
    Versione assembly: 1.0.5000.0
    Versione Win32: 1.1.4322.573
    Base di codice: file:///c:/windows/assembly/gac/system.windows.forms.resou ....

windows.forms.resources.dll
----------------------------------------

************** Debug JIT **************
Per attivare il debug JIT (Just-In-Time), è necessario impostare il valore
jitDebugging nella sezione system.windows.forms del file di configurazione
dell'applicazione o del computer (machine.config).
L'applicazione inoltre deve essere compilata con il debug
attivato.

Ad esempio:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

Quando il debug JIT è attivato, tutte le eccezioni non gestite
vengono inviate al debugger JIT registrato nel computer,
anziché essere gestite da questa finestra di dialogo.


STO IMPAZZENDO COME FACCIO A RISOLVERE QUEST'ERRORE?????
AIUTATEMI VI PREGO!!!! :-|

PM Quote
Avatar
fizzu (Normal User)
Newbie


Messaggi: 1
Iscritto: 11/03/2007

Segnala al moderatore
Postato alle 18:16
Domenica, 11/03/2007
Ciao.spero di poterti aiutare con queste istruzioni su dove e cosa modificare...
Vai in C poi in WINDOWS poi in MICROSOFT.NET

(credo anche tu l'abbia installato qui,se no
vatti a cercare MICROSOFT.NET)

poi vai in FRAMEWORK poi in v2.0.50727
poi in CONFIG.
Ora apri MACHINE.CONFIG FILE COMMENTS usando il blocco note,fai scorrere circa un quarto del documento e troverai  due righe così:
<!--
        <system.windows.forms
            jitDebugging = "false" [true|false]
        />
    -->
    <system.windows.forms jitDebugging="false" />
    <!--

Scrivi true al posto di false tra le virgolette e salva. FATTO  P.S. non so se devono essere cambiati tutti e due i false ma credo di si. comunque al limite fai una prova...Ciao
:-|

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:18
Lunedì, 12/03/2007
A me sembra che il primo sia un commento, perchè è compreso tra <!-- e -->. Quindi dovrebbe essere cambiato solo il secondo.

PM Quote