2015-10-13 2 views
0

Может ли кто-нибудь помочь мне в том, как отображать .exe-файл в listBox и запускать их при нажатии? Я уже сделал некоторую кодировку, и мое кодирование может отображать только все .exe-файлы. Если возможно, я хочу, чтобы они тоже могли работать.Показать .exe файлы и запустить

Вот мой код.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    ' make a reference to a directory 
    Dim di As New IO.DirectoryInfo("C:\") 
    Dim diar1 As IO.FileInfo() = di.GetFiles() 
    Dim dra As IO.FileInfo 

    listBox1.Items.Clear() 
    'list the names of all files in the specified directory 
    For Each dra In diar1 
     listBox1.Items.Add(dra) 
    Next 
End Sub 

ответ

0

Я бы, как правило, связывает FileInfo объектов, как так:

Dim folder As New DirectoryInfo("folder path here") 
Dim files = folder.GetFiles("*.exe") 

With Me.ListBox1 
    .DisplayMember = "Name" 
    .ValueMember = "FullName" 
    .DataSource = files 
End With 

, который будет отображаться только именем файла, но тогда вы можете получить доступ к полному пути к выбранному файлу через SelectedValue собственности ListBox. Запуск выбранного исполняемого файла влечет за собой:

Process.Start(CStr(Me.ListBox1.SelectedValue)) 
+0

Огромное спасибо. Я попробую :) – Emerald

+0

Жаль, что я попытался сделать код, который вы мне предлагаете, но кажется, что он не работает для меня. Кстати, спасибо за ваше предложение. – Emerald

+0

Я не могу вам помочь, если все, что вы говорите, это то, что он не работает. Вы должны указать, что на самом деле произошло. Либо я сделал что-то не так, либо у тебя есть. Если у меня есть, я не буду знать, что искать, если вы не скажете мне, что произошло. Если у вас есть, я не смогу ничего найти, если вы не покажете, что вы сделали. То, что выскакивает как наиболее вероятная возможность, заключается в том, что вы не называли «Process.Start» в нужном месте, но как я могу узнать, так ли это на основе информации, которую вы предоставили? – jmcilhinney

Смежные вопросы