Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, _ ByVal lpszOp As String, ByVal lpszFile As String, _ ByVal lpszParams As String, _ ByVal lpszDir As String, _ ByVal FsShowCmd As Long) As Long Private Const SE_ERR_FNF = 2& Private Const SE_ERR_PNF = 3& Private Const SE_ERR_ACCESSDENIED = 5& Private Const SE_ERR_OOM = 8& Private Const SE_ERR_DLLNOTFOUND = 32& Private Const SE_ERR_SHARE = 26& Private Const SE_ERR_ASSOCINCOMPLETE = 27& Private Const SE_ERR_DDETIMEOUT = 28& Private Const SE_ERR_DDEFAIL = 29& Private Const SE_ERR_DDEBUSY = 30& Private Const SE_ERR_NOASSOC = 31& Private Const ERROR_BAD_FORMAT = 11& Public Function ShellPrint(jFormHwnd As Long, _ FilePath As String) As String Dim Answer As Integer Dim Msg As String Answer = ShellExecute(jFormHwnd, "Print", _ FilePath, vbNullString, vbNullString, vbNormalFocus) If Answer <= 32 Then 'questo e' un errore Select Case Answer Case SE_ERR_FNF Msg = "File Non Trovato" Case SE_ERR_PNF Msg = "Path Non Trovata" Case SE_ERR_ACCESSDENIED Msg = "Accesso negato alla risorsa" Case SE_ERR_OOM Msg = "Out of memory" Case SE_ERR_DLLNOTFOUND Msg = "DLL Non Trovata" Case SE_ERR_SHARE Msg = "Violazione della condivisione" Case SE_ERR_ASSOCINCOMPLETE Msg = "Associazione File non valida o Incompleta" Case SE_ERR_DDETIMEOUT Msg = "DDE Time out" Case SE_ERR_DDEFAIL Msg = "DDE transazione fallita" Case SE_ERR_DDEBUSY Msg = "DDE occupato" Case SE_ERR_NOASSOC Msg = "Nessuna associazione per l'estensione del file" Case ERROR_BAD_FORMAT Msg = "File EXE non valido o Errore immagine" Case Else Msg = "Mi arrendo Errore sconosciuto" End Select End If ShellPrint = Msg End Function Private Sub Command1_Click() Dim x As String x = ShellPrint(Me.hwnd, "C:\File") If x <> vbNullString Then MsgBox x End If End Sub |