Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

VisualBasic - Windows-Explorer Fenster öffnen





Frage

Hi, steh irgendwie gerade total aufm Schlauch. Schreibe ein kleines CD Starter Programm und hänge bei folgendem Problem: Wie kann man mit Hilfe eines Button-Click-Events ein Explorer Fenster öffnen in dem ein bestimmtes Verzeichnis angezeigt wird? Also im Prinzip ein Hyperlink zu "C:\Test". Vielen Dank für eure Hilfe!

Antwort 1 von Luke_Filewalker

Hi Bugg,

Deine Sorte mag ich normalerweise überhaupt nicht (Thema Bugs) *g*

Über Windows API ist das schnell und einfach gelöst. Du benötigst folgende Deklaration für ShellExecute im Formular oder einem Modul:

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
Const SW_RESTORE As Long = &H9&


Der Aufruf (in dem Fall aus einem Formularcode) ist jetzt ganz simpel:

call shellexecute(me.hwnd, "explore", "c:\test", 0, 0, sw_restore)


Mit ShellExecute lassen sich übrigens viele Dinge realisieren. Ein funktionierendes Beispiel findest übrigens hier

Antwort 2 von Bugg

Hi Luke,

vielen Dank für die schnelle Hilfe.
Da ich mit Windows API nicht ganz so firm bin, hab ich das Problem jetzt mal einfach so gelöst:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        
    Dim pfad As String
        
    pfad = Application.StartupPath & "Bilder Benny"
        
    Shell("Explorer.exe /e, " & pfad, vbNormalFocus)
End Sub


Auf meinem Rechner hats gut funktioniert, hoffe mal auf anderen Rechnern dann auch!?

Antwort 3 von Luke_Filewalker

Wenn Du mit API nicht viel oder gar nichts machst, ist das auch eine praktikable Lösung. Vorteil der API Variante ist zum einen die grössere Kontrolle. Dazu gehört z.B. das Du auch Fehlercodes auswerten kannst, was bei SHELL nicht möglich ist. Der Unterschied ist ausserdem, das mit SHELL ein externes Programm gestartet wird, bei ShellExecute jedoch qasi die Funktion(en) direkt.

Wenn Du Dir das Beispielprojekt wie oben angegeben runterlädst und anschaust, dürfte Dir sofort klar sein wie es eingebunden werden muss. Es ist wirklich simpel in diesem Fall.

Aber okay, es tut ja jetzt. ;)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: