Oppure

Loading
07/08/09 0:30
Mi ero assentato un po, ma edesso sono tornato a programmare/bestemmiare in turco:

Il programma (il form che non funziona è riferito alla visualizzazione e inserimento di immagini) cgrea una pagina web contenenti delle immagini di alcuni prodotti. La pagina non funzionante dovrebbe, con un doppio click del mouse sulla imagebox, visualizzare con il programma di visualizzazione predefinito, l'immagine selezionata tramite una FileListBox (o una salvata ina una Listbox). Il comando, usato in altri modi funziona. Il programma NON genera alcun errore, ma semplicemente non mi apre l'immagine... allego il codice:

Option Explicit
Dim switch As Integer
Dim FileSelezionato As String
Dim Immaginevolatile As String

Private Sub cmdOk_Click()
    lstSelezionati.AddItem FileSelezionato
    FileCopy (FileSelezionato), (aslals)
End Sub

Private Sub Dir1_Change()
    File1.Path = Dir1.Path
End Sub

Private Sub File1_Click()
    switch = 1
    FileSelezionato = File1.Path & "\" & File1.FileName
    Image1.Picture = LoadPicture(FileSelezionato)
    If FileSelezionato <> "" Then
        cmdOk.Enabled = True
    Else
        cmdOk.Enabled = False
    End If
End Sub

Private Sub Form_Load()
    switch = 0
End Sub

Private Sub Image1_dblClick()
    Dim Shell As Object
    Set Shell = CreateObject("Shell.Application")
    Select Case switch
    Case Is = 1
        Shell.Open FileSelezionato ' NON APRE IL FILE
    Case Is = 2
        Shell.Open Immaginevolatile ' NON APRE IL FILE
    End Select
End Sub

Private Sub lstSelezionati_Click()
    switch = 2
    Immaginevolatile = lstSelezionati.Text
    Image1.Picture = LoadPicture(Immaginevolatile)
End Sub

 


Sapreste dirmi perchè?
07/08/09 11:10
Alfonso
Ho avuto dei problemi del genere che ho risolto con ShellExecute (sempre che sia già definito il programma che apre i file con la tua estensione)


Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpoperation As String, ByVal lpfile As String, ByVal lpparameters As String, lpdirectory As String, nshowCmd As Long) As Long


ShellExecute Me.hwnd, "open", NomeDelFile, "", "", vbNormalFocus
aaa
07/08/09 15:37
Overflow
il tuo codice non funziona perchè apri un documento. Invece devi aprire il programma e passare come parametro al programma il documento.
Esempio: se devi aprire il documento miofile.txt, la variabile FileSelezionato (se non ricordo male si chiama così;) contiene dunque miofile.txt.
Quando fai Shell.open FileSelezionato stai tentando di aprire un documento txt, dovresti fare invece
Shell.open "notepad.exe "&FileSelezionato
.
Credo sia quello il problema.

Puoi inoltre fare cosi:
Shell.ShellExecute FileSelezionato


il metodo ShellExecute invece apre il programma associato all'estensione del file automaticamente.
Ultima modifica effettuata da Overflow 07/08/09 15:41
aaa
08/08/09 1:53
grazie mille =D