Как запускать файлы с разными расшырениями?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Как запускать файлы с разными расшырениями?

Сообщение Ramzes » 03.03.2004 (Ср) 22:51

Еще один вопрос ребром... :lol:
Как запустить *.exe знают многие (Даже дураки)

Как открыть Ie Тоже...

А как например открыть *.txt с помощью блокнота, *.xls спощю Excel'я...
И как запускать прогу через *.lnk

Зарание благодарю... :roll:

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 03.03.2004 (Ср) 23:07

поищи по форуму ShellExecute или посмотри api-guide
Ничто так не ограничивает полёт мысли программиста, как компилятор

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 04.03.2004 (Чт) 13:35

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
Private Declare Function GetDesktopWindow Lib "user32" () As Long

Function startdoc(DocName As String)
Dim Scr_hDC As Long
Scr_hDC = GetDesktopWindow()
startdoc = ShellExecute(Scr_hDC, "Open", DocName, "", "C:\", 1)
End Function

Private Sub Command1_Click()
Dim r As Long
'укажите путь к вашему файлу
r = startdoc("D:\1.xls")
End Sub

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 04.03.2004 (Чт) 13:36

Ну вот тебе пример трех типов расширения

Код: Выделить всё
Sub OpenFile(Name1)
Dim i As Long
Dim application as variant

‘If  exe File
If InStr(UCase(name1), "EXE") <> 0 Then
i = Shell(name1, vbNormalFocus)
  Exit Sub
End If

'If  Excel.application
If InStr(UCase(name1), "XLS") <> 0 Or _
InStr(UCase(name1), "XLW") <> 0 Or _
InStr(UCase(name1), "XLA") <> 0 Then
Set Application = CreateObject("Excel.application")
With Application
.workbooks.Open name1
.Visible = True
.WindowState = 3
.workbooks(1).Activate
end with

'If  Word.application
ElseIf InStr(UCase(name1), "DOC") <> 0 Or _
InStr(UCase(name1), "RTF") <> 0 Or _
InStr(UCase(name1), "TXT") <> 0 Then
Set Application = CreateObject("Word.application")
With Application
.Documents.Open Name1
.Visible = True
.WindowState = 1
.Documents(1).Activate
End With
Else
MsgBox "File can not open" & Name1
Exit Sub
End If

Application = nothing
End Sub

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 04.03.2004 (Чт) 22:20

спасибо, но как открывать екзешники через *.lnk?

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 05.03.2004 (Пт) 11:25

что бы узнать содержимое ярлыка зайди сюда:
http://bbs.vbstreets.ru/viewtopic.php?t ... sc&start=0

А затем, найди сообщение Красавицы начинающееся со слов:

Vitaly1
Вот нашла для вас более удобный, найденный на одном из ресурсов по кодингу на VB, способ:

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 05.03.2004 (Пт) 11:37

а можно и просто в shellexecute подсунуть lnc файл и он сам разберется :P :!:
Ничто так не ограничивает полёт мысли программиста, как компилятор


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 10

    TopList