Помогите с запуском файлов

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SerJay
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 06.05.2005 (Пт) 17:12
Откуда: Казахстан

Помогите с запуском файлов

Сообщение SerJay » 20.07.2005 (Ср) 9:35

Подскажите как сделать:
Есть 2 файла .pdf
Нужно чтоб один файл открывался в Acrobat Reader 4.0
А другой в Acrobat Reader 5.0
Запускаться будет только в 2000 и XP
Подскажите что я делаю не так

Private Sub Command1_Click()
Dim Acr4 As String

Acr4 = """C:\Program Files\Adobe\Acrobat 4.0\Reader\AcroRd32.exe"" " & PdfPath & "c:\1.pdf"

Shell "cmd /X /C start " & Acr4 & ""

End Sub

Стоит Акробат 4.0, в нём запускается,
Поставил Акробат 6.0 запускается в 6.0 а надо в 4.0
Заранее благодарен

P.S. И подскажите как сделать чтоб запускался только MAX окне

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 20.07.2005 (Ср) 11:53

А зачем CMD?
Теоретически это должно работать:
Код: Выделить всё
A4="C:\Program Files\Adobe\Acrobat 4.0\Reader\AcroRd32.exe"
A6="C:\Program Files\Adobe\Acrobat 6.0\Reader\AcroRd32.exe"

shell A4 & " " & "C:\file1.pdf", vbMaximizedFocus

shell A6 & " " & "C:\file2.pdf", vbMaximizedFocus
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 20.07.2005 (Ср) 11:57

Как раз теоритески оно работать не должно ;)
Код: Выделить всё
A4="C:\Program Files\Adobe\Acrobat 4.0\Reader\AcroRd32.exe"
A6="C:\Program Files\Adobe\Acrobat 6.0\Reader\AcroRd32.exe"

shell """" & A4 & """ C:\file1.pdf", vbMaximizedFocus

shell """" & A6 & """ C:\file2.pdf", vbMaximizedFocus
Последний раз редактировалось A.A.Z. 20.07.2005 (Ср) 12:29, всего редактировалось 1 раз.
Нет меня больше

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 20.07.2005 (Ср) 12:20

A.A.Z., Но ведь мое работает. А на твое ругается.
Наверно ты хотел написать
Код: Выделить всё
Shell """" & A6 & """ c:\file2.pdf", vbMaximizedFocus

;-)
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 20.07.2005 (Ср) 12:22

Да, именно :)
Нет меня больше

SerJay
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 06.05.2005 (Пт) 17:12
Откуда: Казахстан

Сообщение SerJay » 20.07.2005 (Ср) 13:34

Ребята спасибо огромное выручили,всё работает.
Но одна особенность: если я первый файл открываю в акробат 4.0
и потом открываю второй файл с указанием открыть в акробат 6.0
он открывает всё равно в 4.0
Только после закрытии первого файла второй открывается как
и задумано в 6.0
Интересно почему?(Читаю и сам думаю понятно ли написал?!)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.07.2005 (Ср) 13:40

Видать потому же, почему второй документ ворда откроется в текущей копии, а не в новой :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

SerJay
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 06.05.2005 (Пт) 17:12
Откуда: Казахстан

Сообщение SerJay » 20.07.2005 (Ср) 13:43

Вопросов больше нет!
javascript:emoticon(':wink:')

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 20.07.2005 (Ср) 13:58

GSerg писал(а):Видать потому же, почему второй документ ворда откроется в текущей копии, а не в новой :)

Да, но в этом случае ворд - одна программа на два документа. А здесь две разных программы (в смысле два разных ехе файла в разных папках).
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

Janyzak
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 08.08.2005 (Пн) 22:45
Откуда: Kyrgyzstan, Bishkek

Сообщение Janyzak » 08.08.2005 (Пн) 23:54

У меня тоже вопрос:

хотел сделать CD_run для компашки с помощью VB.

Как дело дошло до открытия нужного файла, не могу найти шаблона ни в учебниках, ни в интернете.

Допустим, нажал на кнопку "Учебник"...
Вот тут примерно:
Private Sub Image2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim sFileName As String
Image2.Picture = _
LoadPicture("D:\ my_doc\ buisnes\_my_business\my_kitep\1_my_book\bk_kbd\CD_vb_run\button\oku_ru_3.gif")
Image2.Visible = True

ShellExecute Me.hwnd, vbNullString, App.Path & "\1.htm", vbNullString, App.Path, SW_SHOWNORMAL (фрагмент рекомендации профессора VB)
End Sub

Тут у меня кнопка меняет цвет при нажатии на нее (MouseDown).
Заодно должена была запустить внешний файл, к примеру, "1.htm"

Этот файл в том же каталоге, где и run_файл (book.exe).

Подскажите, пож., как тут быть.

Я писал и в другой теме, очень похожей на эту.

Вот внешний вид пускателя (картинка):

Изображение

Реальный размер программной картины -
701х539 пикселей

С уважением и надежной на возможный ответ.
Последний раз редактировалось Janyzak 10.08.2005 (Ср) 4:05, всего редактировалось 1 раз.
Janyzak
iz Kyrgyzstana

Beta_b
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 04.02.2005 (Пт) 17:53
Откуда: Санкт-Петербург

Сообщение Beta_b » 09.08.2005 (Вт) 10:46

Если последний параметр 1 у меня работает
(кстати важно правильное расширение .htm или .html)

Janyzak
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 08.08.2005 (Пн) 22:45
Откуда: Kyrgyzstan, Bishkek

Сообщение Janyzak » 10.08.2005 (Ср) 3:53

Тут я вчера обратился к сдешним товарищам приватно, и вот что из этого вышло:
мне прислали код -
Sub Command1_Click()
Shell("iexplore.exe c:\1.htm", vbMaximizedFocus)
End Sub
Я задействовал его:
Private Sub Image2_Click()
Shell("iexplore.exe c:\1.htm", vbMaximizedFocus)
End Sub
и вот что из этого вышло:

Изображение


А вот как выглядел код в момент исполнения:

Изображение


Видимо, запись:
Shell("iexplore.exe c:\1.htm", vbMaximizedFocus)
изначально неверно.

Спасибо за попытку помощи.
Я, пожалуй, опубликую это сообщение с тем, чтобы и другие могли высказать свое мнение по этому поводу.
------------------------------

Уважаемые знающие,
прошу высказать ваше мнение по поводу запуска нового файла из приложения VB.


С уважением
Janyzak
iz Kyrgyzstana

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 10.08.2005 (Ср) 15:51

...
Последний раз редактировалось Al Khamid 04.12.2007 (Вт) 12:45, всего редактировалось 1 раз.

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 10.08.2005 (Ср) 17:20

или
call Shell("iexplore.exe c:\1.htm", vbMaximizedFocus)
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

Janyzak
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 08.08.2005 (Пн) 22:45
Откуда: Kyrgyzstan, Bishkek

Сообщение Janyzak » 10.08.2005 (Ср) 23:14

Спасибо Вам от души!
Но вот маленькая незадача - надо, оказывается, в об'язательном порядке непременно указывать местоположения iexplore.exe так же, как адрес самого искомого файла:
Private Sub Image2_Click()
Call Shell("D:\ my_doc\ buisnes\_my_business\my_kitep\1_my_book\bk_kbd\CD_vb_run\iexplore.exe D:\ my_doc\ buisnes\_my_business\my_kitep\1_my_book\bk_kbd\CD_vb_run\1.htm", vbMaximizedFocus)
'Shell "D:\Program Files\Internet Explorer\iexplore.exe D:\ my_doc\ buisnes\_my_business\my_kitep\1_my_book\bk_kbd\CD_vb_run\1.htm", vbMaximizedFocus
End Sub

Содержимое книжки предполагается поместить в компакт-диск. Все файлы будут там.
Но как указать адрес энтого компакт-диска, если, к примеру, у пользователя он будет обозначаться иной буквой, чем указана у меня?

В тех CD_run программах указывается только файл в той папке, где *.ini и искомый файл можно найти шельчком (Click).

Неужели в VB невозможно обойтись без точного указывания адреса и самого приложения, и файла, который должен будет быть открытым этим приложением, причем если и файл и приложение в одной папке?

Хотел сказать: нет ли такого схожего действа, как в html_гиперссылке?

Опять большое спасибо за подсказку, думаю, она будет нелишна работам иного направления, но мне хотелось бы узнать, возможно ли без указывания адреса, со ссылкой на ту папку, где находятся и программка, и все файлы?

С уважением:
Janyzak
iz Kyrgyzstana

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 10.08.2005 (Ср) 23:51

MsgBox App.Path - путь к твоей проге
MsgBox Left$(App.Path, 3) - диск, на котором прога
---
А вообще-то, ЕМНИП, то что лежит в папке с прогой - нормально запускается по имени (без пути).
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

hohol_kz
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.08.2005 (Пт) 6:21

Сообщение hohol_kz » 11.08.2005 (Чт) 7:29

Он грит о другом, не о своем файле, а о пути к интернет эксплореру.
Путь к которому может быть на разных компах разным, смотря кто на какой диск ставил. Папку же размещения меняют чрезвычайно редко.

Можно посоветовать такое:
1. Выяснить диск, на котором сидит система.
2. Добавить к нему "\Program Files\Internet Explorer\iexplore.exe " как стандартный.
3. Обработать ошибку в случае если ненайден (весьма гипотетичный), т.е. "обругать" пользователя и попросить его поделиться секретной информацией, куда он спрятал эксплорер. Можешь даже в шутку за отказ указать расположение эксплорера пригрозить отформатировать диски :lol:

Код: Выделить всё
   msgbox left$(Environ("windir"),2)
   msgbox left$(Environ("windir"),2) & "\Program Files\Internet Explorer\iexplore.exe "
   If Len(Dir(Left$(Environ("windir"), 2) & "\Program Files\Internet Explorer\iexplore.exe ")) = 0 Then
        MsgBox "Голуба, укажи, куда запрятал Internet Explorer!" & Chr(13) & _
               "А то как рассержусь и...", vbCritical, _
               "Блин, опять попался супермегакулхацкер"
               '... тут собственно диалог получения размещения эксплорера через CommonDialog-контрол
    Else
        MsgBox Left$(Environ("windir"), 2) & "\Program Files\Internet Explorer\iexplore.exe "
    End If


Ну или что-либо подобное. Путь к твоей проге см. сообщение SHURUP

Еще вариант узнать про эксплорер - обратиться к реестру. Все же там много полезного имеется.
На правах саморекламмы: "Кофейник" - это тот же "чайник", только круче.


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

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

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

    TopList