Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB6 > Как открыть фаил? |
Автор: ruslan_rx 14.12.2006, 08:37 |
Всем Привет!! Понимаю что эта тема рассмотренна уже со всех сторон, но везде говорится про фаил который имеет контретный путь!! У меня следующая проблема как открыть фаил который находится в тойже папки что и ЕХЕ программа (или в подпапке), без указания конкретного диска и без указания сколько папок было до этого ??? ![]() |
Автор: boevik 14.12.2006, 08:49 | ||
App.Path - возвращает папку в которой находится exe.
|
Автор: ruslan_rx 14.12.2006, 09:00 |
boevik, Спасибо! |
Автор: ruslan_rx 14.12.2006, 10:10 | ||||
При написании OpenFile (App.Path &"\РК-1.xls") пишет ошибк: Sub or Function not defined! Пишу тогда по другому Shell "C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE App.path РК-1.xls" ссылка выполняется но так же всплывают ошипки:
и
В чем дело??? ![]() |
Автор: ruslan_rx 14.12.2006, 10:52 | ||||||
Вообще не открывает, ОШИБКА! а при
Ругается на CommonDialog1 ![]() Добавлено @ 11:03 Все я ее все таки добил!!!
|
Автор: Voldemar2004 14.12.2006, 11:07 |
В Project->Components->Controls - поставь галочку напротив Microsoft Common Dialog Control и нажми Ok. |
Автор: antiQuark 30.12.2006, 21:21 |
извините за офтоп , но у меня Visual Studio 2005 и я не могу найти Microsoft Common Dialog Control - очень нужно, и кстати как сделать exe'шник в VS 2005, в отличии от Бэйсик 6.0 там нет Маке .exe , или я не нашел! ![]() |
Автор: ruslan_rx 10.1.2007, 15:18 |
У меня еще вопрос! если в пути к файлу имеются пробелы то фаил не запускается!!! т.е. он разбивает путь как на два пути ![]() ![]() |
Автор: boevik 10.1.2007, 15:33 |
взять имя файла в кавычки |
Автор: ruslan_rx 10.1.2007, 15:57 | ||
Неа, этот вариант не годится, у меня путь не конкретный!!!
так вот в пути до файла есть пробелы, допустим "Program Files" но не обезательно! и по данной команде (приведенной выше) он не находит файл! |
Автор: Akina 10.1.2007, 19:08 | ||
|
Автор: Тутанхамец 10.1.2007, 20:04 | ||
Есть еще один момент насчет App.Path. На нем редко когда, но все-таки можно лохануться. Обычно путь App.Path НЕ оканчивается на "\". Но если прога лежит прямо в корневухе (C:\), то путь оканчивается на слэш. Поэтому я в начале проги делаю так:
|
Автор: Akina 10.1.2007, 22:57 | ||
а вообще почему бы не плясать от текущего каталога?
|
Автор: ruslan_rx 11.1.2007, 06:53 | ||
Akina, Спасибо!! вариант с
Работает!!! А вот последний нехочет!!! |
Автор: Тутанхамец 11.1.2007, 18:35 |
А текущий каталог может быть не тем, из которого запустилась прога? |
Автор: ruslan_rx 16.1.2007, 07:50 | ||
Возник новый вопрос! при прописании адреса на объект
у меня все нормально открывается!!! у меня стоит Офис 2003!!!! после того когда я попробывал запустить на другой машине с Офисом 2000, то объект не запустился, и написал Фаил не найден! может можно как то обойтись без конкретной привязки место нахождения Excel'я?? ![]() |
Автор: Akina 16.1.2007, 08:39 | ||
Конечно... вместо C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE использовать start EXCEL.EXE |
Автор: ruslan_rx 16.1.2007, 09:43 | ||
Ошибка 53! Фаил не найден! |
Автор: bom 16.1.2007, 15:37 | ||||
API "ShellExecute" заюзать - религия не позволяет?
Для VB 2005:
|
Автор: ruslan_rx 17.1.2007, 07:44 | ||
bom, если ввести так как ты написал,
то пишет что Sab или Funtion не определена!!! может подскажешь!!! что еще надо написать??? я в VB пока новичек, и еще почти ничего не знаю! |
Автор: mihanik 17.1.2007, 11:24 |
Терзают меня смутные сомнения... Уважаемый ruslan_rx!!! Ты пишешь программу на VB или на VBA? Если это макрос Excel, то из самого макроса можно узнать место размещения файла EXCEL.EXE через Application.Path... Если же ты из программы на VB6 хочешь это узнать, то кто мешает создать экземпляр Excel и у него спросить тот же самый Path? Или я опять что-то не так понял... |
Автор: ruslan_rx 17.1.2007, 11:42 | ||
mihanik, пишу на VB, в окне Form1 есть кнопка корорая ссылается на на фаил Excel'я!! И для того что бы открыть этот фаил я испльзовал команду:
и у меня все работало!!! Но когда я запустил этот фаил на другой машине (где стоит MS Office 2000) то он не запустился, а на других машинах с MS Office 2003 все прекрасно работает!!! так как мне исправить что все запускалось не зависимо какой стоит ОФИС на машине? |
Автор: Naghual 17.1.2007, 12:09 | ||
|
Автор: ruslan_rx 17.1.2007, 12:46 | ||||
все отличие между 2000 и 2003 в пути !!! если стоит 2000 то...
а для 2003...
может тогда сначала определить версию офиса, или что выручайте!!!! |
Автор: Naghual 17.1.2007, 12:47 |
См. выше. |
Автор: ruslan_rx 17.1.2007, 12:51 |
Naghual, Куда именно?? говори конкретно!! |
Автор: mihanik 17.1.2007, 13:01 |
ruslan_rx, извини тупого.... Я так понимаю, что необходимо сделать так, чтобы открылся ехель с каким-то открытым документом? |
Автор: ruslan_rx 17.1.2007, 13:17 | ||
mihanik, нет! на ФОРМЕ есть кнопка....
и при ее нажатии соответственно нужно что бы фаил открылся, в данном случае команда рабочая! но только если установлен ОФИС 2003. при другом скажем при 2000 путь к ЕКСЕЛЮ меняется! и фаил не открывается вообще! |
Автор: mihanik 17.1.2007, 13:36 | ||
Добавлено @ 13:39 Я никак не могу понять, где лежит файл, который надо открыть? Общие правила (не путь, а общий принцип) его расположения известны? Добавлено @ 13:49 Мой фрагмент будет работать, если в референсах проекта подключить Microsoft Excel N Object Library |
Автор: ruslan_rx 17.1.2007, 13:56 |
mihanik, есть ЕХЕ програмка, которая по сути и состоит из одних кнопок к которым прикреплены ЭКСЕЛЕВСКИЕ файлы. файлы которые необходимо запустить лежат в подкаталогах где находится ЕХЕ фаил. что то типа такого С:/[...]/[В этой папке програмка]/[...]/[а вот сдесь уже фаилы которые надо запустить].xls но суть то не в этом! |
Автор: mihanik 17.1.2007, 14:09 |
Итак.... Подвожу итог. У тебя есть программа, которая находится в некоем каталоге (папке). В том же каталоге (папке) есть какая-то папка с именем MyFolder. Нужно чтобы при нажатии на кнопку в программе происходило следующее: 1. Запускался ехель 2. При запуске ехель открывал бы какой-то файл из папки с именем MyFolder. Так? Относительный путь к файлу .xls известен? Имя файла известно? Если всё так, как я предполагаю, то всё решается очень просто!!! |
Автор: ruslan_rx 17.1.2007, 14:21 | ||
mihanik, ТОЧНО, а как это сделать? я делал так (MS Excel 2003).... (уже достал наверное всех ![]()
но этот способ не уневерсален, сделешь на 2003, тогда с 2000 не онкроешь (MS Excel 2000 находится в C:\Program Files\Microsoft Office\OFFICE\EXCEL.EXE) |
Автор: mihanik 17.1.2007, 14:28 |
Вот тебе мой проект с исходником, скомпилированным проектом и вложенной папкой с документом... |
Автор: ruslan_rx 17.1.2007, 14:39 | ||
mihanik, ПРОБЛЕМА!!! почему с твоего запускается проекта, а когда я делаю в своем проекте ругается!
и выделяет AppExcel As Excel.Application |
Автор: mihanik 17.1.2007, 14:45 |
Я же говорил, что в референсах надо всё подключить!!!! Project / References / Microsoft Excel N Object Library Добавлено @ 14:51 Не забудь проверить, будет ли это всё работать в других офисах... |
Автор: ruslan_rx 17.1.2007, 14:54 |
УРААА ВСЕ ЗАРАБОТАЛО!!!!!! mihanik, спасибо!!!! ![]() |
Автор: mihanik 17.1.2007, 15:09 |
Рад!!! ![]() |
Автор: ruslan_rx 17.1.2007, 15:14 |
mihanik, а еще сможешь помочь? У меня на компьтере все идет просто на ура! А вот на компе где стоит 2000 офис при нажатии на кнопку, получается критическая ошибка, и прога закрывается!!!! |
Автор: mihanik 17.1.2007, 15:24 |
Надо подумать... |
Автор: ruslan_rx 18.1.2007, 07:42 | ||||
mihanik, я тут все рыскал.... думал что еще придумать.... и вот кое что заметил, может в этом все дело! То что ты мне написал подключить...
но у меня была не совсем такая строчка, а вот такая
|
Автор: ruslan_rx 18.1.2007, 08:07 | ||||
Все проблема решена, все работает и на 2003 и на 2000 офисе, я просто повзаимствовал библиотеку из 2000 офиса. и вместо строки...
УРААА!!! |
Автор: mihanik 18.1.2007, 08:20 | ||||
ruslan_rx, молодец!!! А то я уже копать хотел сегодня в сторону реестра. Дело в том, что в реестре прописано ГДЕ стоит Word и Excel
У меня, например значения такие
Перебираешь пару ключей реестра и находишь место установки excel... ![]() Молодец, что сам нашёл решение... |
Автор: mihanik 22.1.2007, 10:40 | ||
Ещё вот так можно...
|