Ciao. Ho un problemino con uno shell. Io da una CommonDialog scelgo un file dal pc selezionandolo questo file mi servirà per il comando shell che ha la seguente sintassi:

nomeprg -p file1.big file2.fsh dirfile2.fsh

il problema è su file2 e dirfile2.
File2 corrisponde al nome del file che seleziono dalla commondialog
DirFile2 corrisponde alla directory completa del file selezionato nella commonDialog (es: C:\file.fsh)

Per dare le variabili ho questo codice che però non mi funziona:
__________________________________________________ _______________
Private Declare Function GetShortPathName Lib "kernel32" Alias _
"GetShortPathNameA" (ByVal lpszLongPath As String, _
ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Function GetShortFileName(ByVal LongFileName As String) As String
Dim buffer As String, length As Long
' Prepare the receiving buffer
buffer = Space$(300)
length = GetShortPathName(LongFileName, buffer, Len(buffer))
' if return value was non-zero, estract the result
' else, it returns a null string (probably
GetShortFileName = Left$(buffer, length)
End Function

Private Sub cmdLoad_Click()
Cdcomdiag.Filter = "SHPI (*.fsh)|*.fsh"

On Error GoTo cancelled

Cdcomdiag.CancelError = True
Cdcomdiag.ShowOpen

cancelled:
End Sub

Private Sub Command2_Click()
Shell "impbig /i zdata_05.big " & GetShortFileName(Cdcomdiag.FileTitle) & " " & GetShortFileName(Cdcomdiag.FileName)
End Sub
__________________________________________________ ___________________
Io uso questo codice perchè il programma dello shell è in DOS quindi supporta pochi caratteri per le directory allora così mi accorcia il nome...la funzione che accorcia il nome funziona, il problema è che non mi esegue lo shell correttamente..Preciso che la sintassi è esatta perchè ho provato a sostituire le variabili con i nomi di veri e propri files e lo shell funziona tranquillamente...ora mi domando dov'è il problema? sicuramente non trova uno dei tre files..perchè? Spero sappiate darmi una risposta