Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202

    [VB.NET 4] Error process.start

    Ciao a tutti,

    Ho un problema che mi sta facendo un pò impazzire e non riesco a capire come risolverlo.
    Allora ho creato una progetto con due soluzioni all'interno.
    Per comodità le chiamerò soluzione A e B

    Dalla soluzione A eseguo questo codice :
    codice:
    Try 
    Dim Prc As New ProcessStartInfo(System.Environment.CurrentDirectory + "\tools\B.exe") Process.Start(Prc) 
    Application.Exit() 
    Catch ex As Exception 
    MessageBox.Show(ex.ToString) 
    End Try
    Il try catch non identifica nessun errore, ma mi appare un messaggio che mi dice che l'applicazione ha smesso di funzionare.

    Se io invice faccio il build dell'applicazione B in debug oppure avvio direttamente il .exe compilato si avvia senza nessun problema..

    Dal registro degli errori di win identifico questo errore :

    Nome dell'applicazione che ha generato l'errore: B.exe, versione: 1.0.0.0, timestamp: 0x50af4318
    Nome del modulo che ha generato l'errore: KERNELBASE.dll, versione: 6.1.7601.17932, timestamp: 0x503275ba
    Codice eccezione: 0xe0434352
    Offset errore 0x0000d3cf
    ID processo che ha generato l'errore: 0x185c
    Ora di avvio dell'applicazione che ha generato l'errore: 0x01cdc9618df9f1c9
    Percorso dell'applicazione che ha generato l'errore: G:\tools\B.exe
    Percorso del modulo che ha generato l'errore: C:\Windows\system32\KERNELBASE.dll
    ID segnalazione: cbd1e335-3554-11e2-9899-5cac4cf873aa

    Non ho proprio la più pallida idea di cosa poter fare.
    Confido in voi.

    Grazie a tt
    Che mestiere difficile.....essere da soli ancora di più

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma se esegui il file b.exe in un altro modo (con un doppio click o da console) hai l'errore?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Scusami se ti rispondo solo adesso ma volevo avere le cose più chiare...

    Se avvio il singolarmente il programma B funziona correttamente...

    Ho individuato il problema, ma non riesco a capire il perchè :
    Il problema si presenta nella connessione al database.
    Ho inserito la procedura di connessione al db solo al click di un pulsante e ora il programma si avvia correttamente.

    Queste sono le righe di codice interessate per la connessione :
    Che mestiere difficile.....essere da soli ancora di più

  4. #4
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    codice:
                Dim conn As New OleDbConnection()
                conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + current.Parent.FullName + "\data\DbStoriche.mdb;Jet OLEDB:Database Password=MiaPWD;"
                conn.Open()
                Dim command = New OleDb.OleDbCommand
    
                Dim sqlText, sql As String
                Dim ArrStrSql As String()
                sqlText = Replace(File.ReadAllText(current.Parent.FullName + "\aggiornamento.sql"), vbCrLf, "")
                ArrStrSql = sqlText.Split(";")
    
                For Each sql In ArrStrSql
                    If sql = "" Then
                        Exit For
                    End If
                    command = New OleDb.OleDbCommand(sql, conn)
                    command.ExecuteNonQuery()
                Next
    Che mestiere difficile.....essere da soli ancora di più

  5. #5
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    Ulteriore aggiornamento trovato la riga di codice interessata....

    il problema si verifica in questo preciso istante :

    Dim current As New DirectoryInfo(System.Environment.CurrentDirectory)
    current.Parent.FullName

    Praticamente cosa succede :
    A risiede su G:\
    B risiede su G:\tools\

    A avvia B

    Se avvio solo B System.Environment.CurrentDirectory = "G:\tools\" (Identificazione ottenuta da B)

    Se A avvia B quest ultimo restituirà "G:\" dalla funzione System.Environment.CurrentDirectory

    e percui se io da B (avviato da A) richiedo current.Parent.FullName va in errore perchè non esiste una directory parente di G

    Info G è una chiavetta

    Ma è normale una cosa del genere????? come mai?
    Come posso risolverlo?
    Che mestiere difficile.....essere da soli ancora di più

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.