ShellExecute-Funktion

Blade_Neo

Gesperrt
Hab mich jetzt mal umgeschaut, gesucht und komme einfach nicht darauf wie das Ablaufen soll.
Habe folgendes Prob:

Hab ein Programm dass mir die Ordnerstruktur (mit "dir") ausliest und das Unterverzeichnis in die ComboBox setzt. d.H ich kann mich durch verschiedene Verzeichnisse suchen. In der letzten "form" hab ich eine "List" wo dann *.pdf Dateien angezeigt werden (bzw. alle Dateien) die im letzten Ordner sind.

Der Pfad sieht mit "dir" dann so aus: dirstr1 = Dir(Form2.Text1.Text & "\" & Form2.Combo1.Text & "\" & Form3.Combo2.Text & "\" & Form4.Combo4.Text & "\*.*", vbDirectory) z.B

Nun will ich dass ich per CButton oder Doppelklick die *.pdf öffne.

[EDIT]

Hab noch weiter rumversucht und hab's endlich hingekriegt hier mal ne genaue Anleitung:

1. Erstellt ein neues Modul (Projekt \\ Modul hinzufügen)
schreibt folgendes rein:

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, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

2. Ihr braucht eine ListBox oder ComboBox je nachdem. Ich hab in dem fall eine ListBox genommen.

Dann fügt ihr bei euch in der Form folgendes ein:

Private Sub Command1_Click() 'ich hab z.B ein Command Button


'Hier wird überprüft ob die Datei existiert... man kann hier auch dateipfade angeben

If Dir(List1) = Form2.Text1.Text & "" & Form2.Combo1.Text & " \ " & Form3.Combo2.Text & " \ " & Form4.Combo4.Text & " \ " & Form4.Combo9.Text & " \ " & Me.List1.Text Then
Call MsgBox("Die ausgewählte Datei existiert nicht.", vbExclamation)
Exit Sub
End If

'Hier wird die Datei über das bestimmte Programm geöffnet.
Call ShellExecute(hWnd, "Open", Form2.Text1.Text & "" & Form2.Combo1.Text & "\" & Form3.Combo2.Text & "\" & Form4.Combo4.Text & "\" & Form4.Combo9.Text & "\" & Me.List1.Text, "", App.Path, 1)
End Sub

also ihr könnt eure "dir" oder normale Pfade hier eintragen:
Call ShellExecute(hWnd, "Open", "PFAD IN KLAMMERN", "",App.Path,1)
End Sub

BEI DIR BRAUCH IHR KEINE: " " direkt eintragen nach dem "Open",

Hoffe, dass man das so verstehen kann :)

MfG,
Blade_Neo
 
Zuletzt bearbeitet:
So wie ich das sehe hast du einen kleinen Fehler. Entweder du setzt die ShellExecute Definition mit in die aufrufende Form, oder du definierst die Funktion als Public.

mfg Grimreaper
 
Zurück