Nota: dal tuo messaggio desumo che stiamo parlando di VB.NET; specificalo direttamente nel titolo la prossima volta.
Originariamente inviato da b_lilith
Questo il codice utilizzato con shellExecute (dai controlli fatti, il percorso di filePres risulta corretto)
codice:
Dim returnValue As Boolean
returnValue = My.Computer.FileSystem.FileExists(filePres)
If returnValue Then
On Error GoTo cmdOpenFile_Err
'open the document in whatever application it requires
ShellExecute(0, "open", filePres, vbNullString, vbNullString, vbNormalFocus)
cmdOpenFile_Err:
MsgBox("An unexpected error has occurred.", vbOKOnly + vbCritical, "Error Conditon in Opening File")
Else
MsgBox(filePres)
End If
Una cortesia personale: non usare MAI più l'on error goto: è una tecnica di gestione degli errori obsoleta e mantenuta solo per motivi di compatibilità; usa piuttosto i blocchi try...catch...finally.
L'errore che mi dà è:
PInvokeStackImbalance was detected etc etc
Probabilmente hai dichiarato male la funzione ShellExecute: non è che per caso hai copiato la dichiarazione da una discussione in cui si parlava di VB6? La dichiarazione corretta per VB.NET è la seguente:
codice:
Public Declare Auto Function ShellExecute Lib "shell32.dll" (ByVal hwnd As IntPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Integer) As IntPtr